使用for循环进行子集并从该循环创建多个数据帧。

时间:2018-04-05 18:26:46

标签: r for-loop dataframe subset

我正在尝试创建一个子集数据帧的for循环。这是数据:

df1 <- data.frame(
  Number = c(45,62,27,34,37,55,40),
  Day = c("Mon", "Tues", "Wed", "Thurs", "Fri", "Sat", "Sun"),
  Time = c("1pm", "4pm", "3pm", "2pm", "4pm", "1pm", "2pm"),
  City = c("Chicago", "New York", "LA", "Miami", "San Diego", "Austin", "Dallas"))

我正在尝试的功能是:

allNames<-variable.names(df1)


for (i in allNames){
  if(any(variable.names(df1)== i)){
    i <- df1[,c(i)]
  }
}

基本上我正在尝试对数据文件进行子集化,因此最终结果将是4个数据集,每个数据集具有来自df1的一个变量,并且每个子集化数据集将被命名为它所代表的变量。对于df1

中的每个变量,它看起来都是这样的
 Number
1     45
2     62
3     27
4     34
5     37
6     55
7     40

    Day
1   Mon
2  Tues
3   Wed
4 Thurs
5   Fri
6   Sat
7   Sun

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试:

for (i in allNames) {
  if(any(variable.names(df1)== i)) {assign(i, df1[,c(i)])}
}