【问题标题】:apply a function to all all rows of certain columns in R [duplicate]将函数应用于R中某些列的所有行[重复]
【发布时间】:2016-09-24 10:31:46
【问题描述】:

如果我有一个带有 108 个变量的 data.frame 调用 MyDF,并且我想应用 factor(MyDF[, OnColumns 8 to 100]。我该怎么做?

所以在伪代码中:

for(i=8, i < 101, i++)
{
    # apply factor() to each column from 8 to 100
    factor( MyDF[,i] )
}

这有意义吗?

【问题讨论】:

标签: r iteration apply


【解决方案1】:

您可以创建一个包含需要转换为因子的列的向量,并使用lapply 在这些列上迭代factor

tofactors <- 8:100
df[,tofactors] <- lapply(df[,tofactors], factor)

【讨论】:

  • 这就是诀窍,但我希望这些值可以从 2 和 3 转换为 0 和 1,但事实并非如此。他们现在有 2 个级别?但值是 2 和 3,我怎样才能转换为 0s 和 1s
  • @Gordon 为什么要更改因子的水平?无论如何,这样做没有任何价值。
  • @Gordon 您所看到的实际上是标签。 R 将因子存储为正整数,因此它们的实际值为 1 和 2。您可能可以使用 label 参数为 factor 提供 0 和 1 标签。
  • 所以原始向量有 3 个因子 0,1,2 对应于 no answer,no 和 yes。然后,我将无答案更改为 NA,并在向量上运行因子以使用两个因子重新因子。我需要 2 个因子是二进制 0 和 1,所以我在逻辑回归模型中使用
猜你喜欢
  • 2018-11-10
  • 2016-11-21
  • 1970-01-01
  • 2021-02-03
  • 1970-01-01
  • 2017-02-26
  • 2017-05-12
  • 2022-01-15
  • 2017-08-20
相关资源
最近更新 更多