【问题标题】:Deleting Rows in R [duplicate]删除R中的行[重复]
【发布时间】:2016-05-17 14:25:25
【问题描述】:

当向量的平均值 > 向量中的单个数字时,我正在尝试删除数据框中的所有行。出于某种原因,它似乎会选择删除哪些。感谢所有帮助,谢谢,这是我的代码。

k<-c(HW2$AGE)
j<-mean(k)
for (i in HW2$AGE)
  if (j>i){
    HW2 <- HW2[-i, ]
  }

【问题讨论】:

  • HW2[HW2$Age &lt;= mean(HW2$AGE),] 或类似的会给你我想你想要的结果。通常选择或删除行不需要循环代码,因为 R 内置了矢量化函数。
  • 谢谢你!!!谢谢你的帮助,我真的很感激它,特别是因为我唯一的编码经验几乎没有任何 Java,我仍在努力学习 R 函数。
  • 循环中的i 包含HW2$AGE 的值,而不是索引,因此不会满足您的要求。您还试图在每次迭代时存储整个数组。我强烈推荐初学者 R 课程,例如 Coursera。
  • 请记住,如果您开始在矩阵/data.frame 的任何向量或行上写入for (i in ...),请停止并重新考虑是否有一个函数或提取方法可以一次性完成所有操作.

标签: r


【解决方案1】:

不需要矢量化。相反,我会使用下面的

样本数据

x <- data.frame("A"= runif(10), "B" = runif(10))

计算平均值

xMean <- mean(x[,"A"])

排除行

y <- x[x$A < xMean,]

这可能是排除不需要的行的最明显方式

【讨论】:

  • 那是矢量化代码。
  • 是的,我的意思是写循环。谢谢
猜你喜欢
  • 1970-01-01
  • 2015-01-19
  • 2017-01-31
  • 1970-01-01
  • 2021-05-22
  • 2022-01-23
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多