繁体   English   中英

R:比较数据框中的多个列和字符

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

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