重命名循环中的列,R

时间:2016-06-01 16:15:18

标签: r loops

我有一个从循环创建的CSV外部目录中读取的数据框列表:

dataList = list()
for (i in 0:length-1) {
  dataList[[i + 1]] <-
    read.csv(list.files()[length(list.files()) - i], stringsAsFactors = FALSE) %>%
    select(
      'Username' = USERNAME,
      'Current.count' = LOGIN.COUNT,
    ) 
}

目录中存储的文件数量会随着时间的推移而变化,因此需要循环。当前计数也会在目录中的每个CSV中发生变化。稍后我使用left_join将每个数据框连接到一个用户名,但保留每个唯一的用户登录计数。为此,每个数据框必须具有登录计数的唯一列名。我试过了

for (i in 2:length) {
  select(Username, paste0("Count from month",toString(i))=Current.Logins)
}

但是我收到以下错误

Error: unexpected '='

尝试使用rename()

时,我得到了类似的结果

1 个答案:

答案 0 :(得分:1)

这可以通过setNames轻松完成(正如评论中提到的@Gregor)。我们可以将select循环中的for语句更改为

for (i in 2:length) {
   select(Username, setNames(Current.logins, paste0("Count from month",toString(i)))
}