我想将一个数据集分成几个较小的df,同时在for循环中使用列的名称。
创建一些数据(这可能更容易完成...)
Line1 <- c(1:7)
Line2 <- c(3:9)
df <- rbind(Line1, Line2)
ColumnNames <- c(paste0("Var", 1:7))
df <- lapply(df, setNames, ColumnNames)
colnames(df)=ColumnNames
作为输出,我希望有三个 Dataframe :Df_Sub1、Df_Sub2和Df_Sub3。
Sub1 <- c("Var1", "Var2", "Var3")
Sub2 <- c("Var3", "Var4")
Sub3 <- c("Var5", "Var6", "Var7")
Subs <- c("Sub1", "Sub2", "Sub3")
循环来创建三个子集
for (Sub in Subs) {
name <- as.name(paste0("df_",Sub))
df_ <- df[,colnames(df) %in% get(Sub)]
}
如何在三个子函数的df_后面加上name(或者做一些其他的事情)?
2条答案
按热度按时间5m1hhzi41#
我们可以使用
mget
返回list
中的对象值,循环list
,选择'df'的列,然后使用list2env
在全局env中创建对象x8diyxa72#
循环选项意味着将向量存储在列表中:
输出: