[英]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.