【发布时间】:2017-03-05 16:19:33
【问题描述】:
我是新的 R 用户。 我有一个由 50 列和 300 行组成的数据框。第一列表示 ID,而直到最后一列的第二列是特征的标准差 (sd)。每列的池化 sd 显示在最后一行。对于每一列,我想删除所有那些比池化 sd 大十倍的值。我想一口气做到这一点。到目前为止,下面的脚本是我为了解值是否大于池化 sd 而提出的。但是,即使是 ID(字符)也在处理中(导致全部为 FALSE)。如果我输入 raw_sd_summary[-1],我无法知道哪个特征上的哪个 ID 具有我正在寻找的标准。
logic_sd <- lapply(raw_sd_summary, function(x) x>tail(x,1) )
logic_sd_df <- as.data.frame(logic_sd)
我该怎么办?以及如何提取所有标记为 TRUE(大于 pooled sd)比 pooled SD 大 10 倍(以及它们相应的 ID)的值?
【问题讨论】:
-
我们是否要完全删除任何元素不符合此标准的所有行?此外,您可以创建一个模拟数据框进行演示:
set.seed(24); df<- data.frame(id=1:10,a= floor(runif(n = 10, 1,100)), b= floor(runif(n = 10, 1,100)))
标签: r