繁体   English   中英

部分字符串匹配R的列的总和

[英]Sum of columns with partial string match R

我想根据其字符串值的部分匹配来添加两列

a <- c("ChrM","ChrM","ChrM","ChrM","ChrM")
b <- c(5,6,7,10,11)
c <- c(0,0,3,0,1)
d <- c(2,1,0,1,0)

dfa <- data.table(a, b, c, d) 
colnames(dfa) <- c("ID","pos","cr H-MN-8A","cr H-MN-8B")
#I don't know how to make a column name with a string value (with " " and "_")
  ID     pos        cr H-MN-8A cr H-MN-8B
1 ChrM   5          0          2
2 ChrM   6          0          1
3 ChrM   7          3          0
4 ChrM  10          0          1
5 ChrM  11          1          0

我希望能够基于它们的部分字符串匹配“ cr H-MN-8”添加最后2列“ cr H-MN-8A”,“ cr H-MN-8B”,然后将结果写入一列同时将其与一个值进行比较,因此返回的结果为true或false。 我有类似的东西

dfa <- lapply(dfa, function(x) x[, newval := as.numeric(col1+col2>=1)])

我有两个以上带有标题的字符串匹配项(它们都在同一数据帧上配对)。 有任何想法吗? 谢谢!

(不知道它是否相关,但是我正在使用data.table

我们可以尝试以下data.table方法

dfa[,`H-MN-8` := as.numeric(rowSums(.SD) > 1), .SDcols = grep("cr H-MN-8", names(dfa))]

dfa
#     ID pos cr H-MN-8A cr H-MN-8B H-MN-8
#1: ChrM   5          0          2      1
#2: ChrM   6          0          1      0
#3: ChrM   7          3          0      1
#4: ChrM  10          0          1      0
#5: ChrM  11          1          0      0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM