我觉得这是一个非常愚蠢的问题,但我也无法找到解决方案
我有一个小标题,其中每一行都是一个样本,第一列是一个包含样本 ID 的字符变量,所有后续列都是带有数字变量的变量。
例如:
id <- c("a", "b", "c", "d", "e")
x1 <- rep(1,5)
x2 <- seq(1,5,1)
x3 <- rep(2,5)
x4 <- seq(0.1, 0.5, 0.1)
tb <- tibble(id, x1, x2, x3, x4)
我想对此进行子集化以仅包括总和大于 5 的列和 id 列。使用旧的数据框结构,我知道以下工作:
df <- as.data.frame(tb)
df2 <- cbind(df$id, df[,colSums(df[,2:5])>5)
colnames(df2)[1] <- "id"
但是,当我尝试使用 tibble 以这种方式进行子集化时,我收到错误消息:
Error: Length of logical index vector must be 1 or 5, got: 4
有谁知道如何在不转换为旧数据框格式的情况下完成这项任务?最好不要创建缺少 id 变量的中间 tibble,因为将我的 id 从我的数据中分离出来只是在寻找麻烦。
谢谢!