原始数据中需要清除数百列。它们的每个部分都具有相似的结构。为了进行分析,我需要将所有部分合并为一个具有相同名称的部分。
但是,我真的不知道如何同时使用变量和字符。我应该用!! ?
Q14_1 <- Q14 %>% select(province, ends_with("open_1"))
colnames(Q14_1) <- c("province", paste0("A", 1:11))
Q14_2 <- Q14 %>% select(province, ends_with("open_2"))
colnames(Q14_2) <- c("province", paste0("A", 1:11))
Q14_3 <- Q14 %>% select(province, ends_with("open_3"))
colnames(Q14_3) <- c("province", paste0("A", 1:11))
Q14_4 <- Q14 %>% select(province, ends_with("open_4"))
colnames(Q14_4) <- c("province", paste0("A", 1:11))
Q14_bind <-bind_rows(Q14_1, Q14_2, Q14_3, Q14_4)
有没有简单的方法可以解决此问题?
感谢帕菲特博士。
df_list <- lapply(paste0("open_", 1:20), function(i)
setNames(select(Q14, province, ends_with(i)),
c("province", paste0("A", 1:11)))
)
df_list%>%bind_rows()
答案 0 :(得分:1)
考虑lapply
最终为bind_rows
构建数据帧列表,并使用setNames
作为colnames()<-
的右侧版本:
df_list <- lapply(paste0("open_", 1:4), function(i)
setNames(select(Q14, province, ends_with(i)),
c("province", paste0("A", 1:11)))
)
Q14_bind <- bind_rows(df_list)