[英]R: Compare Multiple columns and characters in a dataframe
我有一个包含几列的数据框,其中有些包含单个字符,例如:
test <- data.frame("IsA" = c("1.0", "0.5", "0.0"), "IsB" = c("1.0", "0.5", "0.0"), "IsC" = c("0.0", "0.5", "0.0"), "C1" = c("a", "b", "c"), "C2"= c("a", "a", "c"), "C3" = c("a", "b", "b"), "C4" = c("c", "b", "c"))
赠送:
IsA IsB IsC C1 C2 C3 C4
1 1.0 1.0 0.0 a a a c
2 0.5 0.5 0.5 b a b b
3 0.0 0.0 0.0 c c b c
我想为每一行添加另外4列,以便如果C1为“ a”且“ IsA”大于或等于0.05,则新列值为True。
IsA IsB IsC C1 C2 C3 C4 C1.t C2.t C3.t C4.t
1 1.0 1.0 0.0 a a a c TRUE TRUE TRUE FALSE
2 0.5 0.5 0.5 b a b b TRUE TRUE TRUE TRUE
3 0.0 0.0 0.0 c c b c FALSE FALSE FALSE FALSE
未针对速度进行优化:
test <- cbind(test,
t(apply(test, 1, function(x) {
a <- as.numeric(x[1:3])
names(a) <- letters[1:3]
b <- x[-(1:3)]
a[b] >= 0.05
})))
IsA IsB IsC C1 C2 C3 C4 1 2 3 4
1 1.0 1.0 0.0 a a a c TRUE TRUE TRUE FALSE
2 0.5 0.5 0.5 b a b b TRUE TRUE TRUE TRUE
3 0.0 0.0 0.0 c c b c FALSE FALSE FALSE FALSE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.