【问题标题】:Replace values in a vector in R替换 R 中向量中的值
【发布时间】:2017-07-31 14:35:49
【问题描述】:

全部。

我需要用向量均值替换 R 中向量中的特定值(异常值)(在这种情况下,我们将不胜感激另一个建议)。我想使用 R 函数“替换”来执行此操作,但我仍然是初学者,我遇到了一个我自己无法修复的错误。这就是我正在尝试的:

replace(data$students, outlier, mean(data&students))

有人在另一篇文章中告诉我,我不能将 & 用于公式,所以这可能是问题所在,但同时这是我得到的错误:

 invalid subscriptor type 'list'

这意味着我必须在输入替换功能之前创建一个列表?我应该输入什么?

很抱歉提供基本信息,但我刚开始使用 R。非常感谢您的精彩回复。

【问题讨论】:

  • 您使用了data& 而不是data$replace 中的第二个参数也应该是逻辑或数字索引。不清楚outlier是什么
  • & 是一个错字。我在我的代码中正确地做到了:-)。问题可能出在异常值上。我有异常值 2000) 它返回一个带有数字和字符串的向量....一个列表?
  • 对于outlier,它应该是一个元素标识符。即作为替换 NA i1 <- which(is.na(data$students)); replace(data$students, i1, mean(data$students, na.rm = TRUE)) 的示例
  • 感谢您的回复,阿克伦。您能告诉我如何将我的我们的 dplyr::filter(data,data$students > 2000) 转换为元素标识符吗?
  • 请检查发布的答案是否符合您的标准

标签: r list replace formulas outliers


【解决方案1】:

如果异常值检测基于大于 2000 的值,则

data$students <- with(data, replace(students, students > 2000, mean(students)))

关于mean 部分,尚不清楚mean 是否也采用异常值。如果不是

i1 <- data$students >2000
data$students <- with(data, replace(students, i1, mean(students[i1])))

【讨论】:

  • 谢谢!!在第一种方法中,它似乎没有,所以显然第一个选项有效:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 1970-01-01
  • 2015-09-18
  • 2015-07-09
  • 2012-11-10
  • 1970-01-01
相关资源
最近更新 更多