【发布时间】:2021-12-13 17:52:07
【问题描述】:
我有一个由逗号分隔的字符串序列组成的数据框。例如:
df <- data.frame(patterns = c("CCDC127, HSF1, NDUFB9", "CCDC127, EXOC3, YIF1A", "EXOC3, NDUFB9, YIF1A"))
df
patterns
1 CCDC127, HSF1, NDUFB9
2 CCDC127, EXOC3, YIF1A
3 EXOC3, NDUFB9, YIF1A
我有另一个数据框,其中每个字符串对应一个数值。例如:
df2 <- data.frame(strings = c("CCDC127", "HSF1", "NDUFB9", "EXOC3", "YIF1A"),
scores = c(10, 11, 12, 13, 14))
df2
strings scores
1 CCDC127 10
2 HSF1 11
3 NDUFB9 12
4 EXOC3 13
5 YIF1A 14
我想根据第二个数据帧中的值计算第一个数据帧中每个模式的总和。例如:
patterns sum
1 CCDC127, HSF1, NDUFB9 33
2 CCDC127, EXOC3, YIF1A 37
3 EXOC3, NDUFB9, YIF1A 39
对于这个问题的任何指示和帮助,我将不胜感激。
谢谢! 奥尔哈
【问题讨论】:
-
rownames(df2) <- df2$strings; sapply(strsplit(df$patterns, ", *"), function(p) sum(df2[p, "scores"]))