【问题标题】:Create a variable in Multiple Dataframes in R在 R 的多个数据框中创建一个变量
【发布时间】:2020-10-22 21:31:23
【问题描述】:

我想创建一个将出现在多个数据框中的排名变量。 我无法将排名变量放入数据框中。

简单的代码。做不到。

dfList <- list(df1,df2,df3)
for (df in dfList){
  rAchievement   <- rank(df["Achievement"])
  df[[rAchievement]]<-rAchievement
}

我想要的结果是 df1、df2 和 df3 分别获得一个名为 rAchievement 的新变量。

我在挣扎!!我很抱歉。我知道那里有类似的问题。我已经审查了所有这些。似乎没有一个有效,接受的答案很少。

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: r loops for-loop


    【解决方案1】:

    我们可以在一行中使用lapply 和transform

    dfList <- lapply(dfList, transform, rAchievement = rank(Achievement))
    

    如果我们需要更新对象“df1”、“df2”、“df3”,请将“dfList”的名称设置为对象名称并使用list2env(虽然不推荐)

    names(dfList) <- paste0('df", 1:3)
    list2env(dfList, .GlobalEnv)
    

    或者使用for循环,我们循环遍历list的序列,提取list元素根据'Achievement'的rank分配一个新列

    for(i in seq_along(dfList)) {
        dfList[[i]][['rAchievement']] <- rank(dfList[[i]]$Achievement)
      }
    

    【讨论】:

    • 完美解决方案。感谢您用两种方法解决。干得真好!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2022-08-13
    • 2021-04-03
    相关资源
    最近更新 更多