使用R,我想知道哪些样本(S1,S2,S3,S4,S5)符合以下标准:最少包含一个大于4的值(x,y或z)。谢谢,Alex。< / p>
Sample x y z <br>
S1 -0.3 5.3 2.5 <br>
S2 0.4 0.2 -1.2 <br>
S3 1.2 -0.6 3.2 <br>
S4 4.3 0.7 5.7 <br>
S5 2.4 4.3 2.3 <br>
答案 0 :(得分:1)
您可以尝试拨打apply
- 例如:
> apply(dataFrameOfSamples,1,function(x)any(x > 4))
S1 S2 S3 S4 S5
TRUE FALSE FALSE TRUE TRUE
答案 1 :(得分:0)
这听起来怎么样?将数据复制到剪贴板并执行以下命令:
dta <- read.table("clipboard", header = T)
apply(dta[2:4], 1, function(x) ifelse(max(x) >= 4, 1, 0))
答案 2 :(得分:0)
有很多行,这可能会更有效:
do.call(pmax, X[c("x","y","z")]) > 4
关于您的数据
ex <- data.frame(
Sample = c("S1", "S2", "S3", "S4", "S5"),
x = c(-0.3, 0.4, 1.2, 4.3, 2.4),
y = c( 5.3, 0.2,-0.6, 0.7, 4.3),
z = c( 2.5,-1.2, 3.2, 5.7, 2.3)
)
do.call(pmax, ex[c("x","y","z")]) > 4
# [1] TRUE FALSE FALSE TRUE TRUE