从R中的数据框中提取值

时间:2010-08-09 06:03:52

标签: r

使用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>

3 个答案:

答案 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