创建新列时如何引用其他文件?

时间:2019-05-17 20:38:16

标签: r

我正在尝试在每个文件中创建一个列Client:ABC。 “ ABC”是我们为每个客户提供的内部缩写。我上传了一个名为acronym的文件,并编写了以下代码。

for(i in seq_along(filePaths)){
data = within(data, {
subsidiary="Client : acronym[i]"
})
}

我的代码中还有其他一些功能(在此不再赘述)可以正常工作。但是,当我编写文件时,得到的是Client:acronym [i]而不是Client:ABC。我在做什么错了?

1 个答案:

答案 0 :(得分:0)

我想象您在首字母缩写文件中的读取方式会导致数据帧,但是您没有正确索引该数据帧。我无法确定您是要使用单个客户端的统一列,还是要使用唯一客户端的查找表。如果是前者,那么下面的示例可能会有所帮助。如果它是一种查找表,请查看合并命令。

library(dplyr)
Class1 <- df %>%
  filter(Time == 1 | Time == 3 & Group %in% c("A", "M")) %>%
  select(Class1 = income)

Class2 <- df %>%
  filter(Time == 2 | Time == 3 & Group %in% c("P", "Q")) %>%
  select(Class2 = income)

df %>% rowid_to_column() %>%
  left_join(Class1 %>% rowid_to_column(), by = "rowid") %>%
  left_join(Class2 %>% rowid_to_column(), by = "rowid")

  rowid Group Time income Class1 Class2
1     1     A    1     20     20     11
2     2     M    3     14     14     22
3     3     A    2     11     24     21
4     4     P    2     22     NA     22
5     5     Q    3     21     NA     15
6     6     Q    1     24     NA     NA
7     7     M    2     22     NA     NA
8     8     P    2     15     NA     NA

请注意我如何索引首字母缩写数据帧的第一列(也是唯一列)。