问题很难解释,但让我告诉你我想从这些数据中得到什么 . 所以,我有一个包含20个不同列的数据,其中有两个已在此处显示 .
Sequence modifications
AAAAGAAAVANQGKK [14] Acetyl (K)|[15] Acetyl (K)
AAAAGAAAVANQGKK [14] Acetyl (K)|[15] Acetyl (K)
AAIKFIKFINPKINDGE [4] Acetyl (K)|[7] Acetyl (K)|[12] Acetyl (K)
AAIKFIKFINPKINDGE [4] Acetyl (K)|[7] Acetyl (K)|[12] Acetyl (K)
AAIKFIKFINPKINDGE [7] Acetyl (K)|[12] Acetyl (K)
AAIKFIKFINPKINDGE [4] Acetyl (K)|[7] Acetyl (K)
AAIYKLLKSHFRNE [5] Biotin (K)|[8] Acetyl (K)
AAKKFEE [3] Acetyl (K)|[4] Acetyl (K)
正如您在相同的序列中看到的那样,可以有不同的修改 . 有时可能有3x乙酰基,simetimes 2x乙酰基,有时只有一次,在其他情况下不会有任何修饰 . 我对“生物素和乙酰基”感兴趣只有2个修改,其他修改并不重要 . 修饰的数量取决于序列中“K”的数量 . 例如,如果序列中有3个“K”,则可能的修改数量为0 0,1,2,3且不超过3.因此,我想根据“K”的数量对这些序列(1000行)进行分组 . “在顺序和修改的数量和类型,它没有粉碎其他列 .
我希望通过R从这些数据中得到它,它是具有指定修改的不同序列组 . 例如:
First Group: (number of "K" in the sequence = 2, and both modified by acetyl)
Sequence modifications
AAAAGAAAVANQGKK [14] Acetyl (K)|[15] Acetyl (K)
AAIYKLLKSHFRNE [5] Acetyl (K)|[8] Acetyl (K)
Second Group: (number of "K" in the sequence = 2, and one modified by acetyl, second nothing)
Third Group: (number of "K" in the sequence = 3, and one modified by acetyl, second acetyl, and last is biotin)
我必须包括所有可能性 . 这就是我认为在我试图编写的脚本的这个“部分”上最好的东西 . 也许你有任何其他建议如何插入这些数据 .
第二个问题是:我计算了3个不同列中的值的平均值,我想将结果放在相同的数据中但在另一列中 . 怎么做 ?
tbl_imp$mean <- rowMeans(subset(tbl_imp, select = c("x", "y", "w")), na.rm = TRUE)
tbl_imp$mean <- data.frame(tbl_imp$mean)
我用来计算行的平均值的代码 . 我只是不知道如何在我拥有的数据中创建一个新列,并将我的结果放在那里 . 我应该使用转换功能吗?
2 回答
我将您的数据加载为对象
aa
.我想所有看似“修改”列的大写字母都是指正在进行的修改或是“K” . 我想不出任何其他方法来简化“修改”列以便操纵它们 . 所以我只是保留不是“K”的大写字母:
简化修改列,仅保留每个修改的第一个字母:
到目前为止我们得到了什么:
然后,您可以对“K”的数量和所需的特定修改进行子集化 . 例如 . :
编辑:这一切都可以在像
fun
这样的函数中完成 .x
是您的data.frame
(与structure
上传的"for Henrik") .noK
是您想要的"K"的数量 .mod
是您希望用[空格]分隔的修改; [空格](例如"B ; A ; O"):例如 . :
EDIT_1:更新了
fun
和示例 .这样的事情可能适用于你的第一部分 . 我现在无法下载文件,但是当我可以的时候,我也会尝试回复第二部分 .
产量