【发布时间】:2021-12-05 23:29:16
【问题描述】:
我有一个包含计数信息的数据框 (df1)
| rownames | sample1 | sample2 | sample3 |
|---|---|---|---|
| m1 | 0 | 5 | 1 |
| m2 | 1 | 7 | 5 |
| m3 | 6 | 2 | 0 |
| m4 | 3 | 1 | 0 |
还有第二个样本信息 (df2)
| rownames | batch | total count |
|---|---|---|
| sample1 | a | 10 |
| sample2 | b | 15 |
| sample3 | a | 6 |
我还有两个列表,其中包含有关 m 值的信息(如果需要,可以轻松地将其转换为另一个数据框,但我宁愿不添加到计数信息中,因为它非常大)。不存在任何模式(例如偶数和奇数),我只是使用一个非常简单的示例
x <- c("m1", "m3") 和 y <- c("m2", "m4")
我想做的是在示例信息中再添加两列。这是每个样本的每个 m 的计数,其值大于 5 并出现在列表 x 或 y 中
| rownames | batch | total count | x | y |
|---|---|---|---|---|
| sample1 | a | 10 | 1 | 0 |
| sample2 | b | 15 | 1 | 1 |
| sample3 | a | 6 | 0 | 1 |
我目前的策略是列出 x 和 y 的值,然后将它们附加到 df2。到目前为止,这是我的尝试:
numX <- colSums(df1[sum(rownames(df1)>10 %in% x),]) 和 numX <- colSums(df1[sum(rownames(df1)>10 %in% x),]) 都返回一个 0 列表
numX <- colSums(df1[rownames(df1)>10 %in% x,])返回每列满足条件的计数值之和的列表
numX <- length(df1[rownames(df1)>10 %in% novel,])返回满足条件的次数(本例中为2L)
我不太确定如何解决这个问题,所以我一直在尝试。我试过寻找答案,但也许我只是在努力寻找合适的措辞。
【问题讨论】: