R中的基本循环

时间:2017-05-18 14:20:57

标签: r loops factors

尝试创建循环以从我的df的第1:9列中提取分类数据:

这样的东西似乎有效,但问题是只返回拉斯维加斯。循环运行后保留每个输出都缺少一些东西。

for (i in 1:9){
  as.factor(df[,i]) -> paste("Category_",sep="_",i)
  }

我想最终得到类似的东西:

Category_1 <- df[,1]
Category_2 <- df[,2]
Category_3 <- df[,3]
...
Category_9 <- df[,9]

3 个答案:

答案 0 :(得分:1)

使用assign。特别是:

for (i in 1:9){
  assign(paste("Category_",sep="_",i),as.factor(df[,i]))
}

答案 1 :(得分:1)

不需要循环

首先是一些示例数据

data(airquality)

df <- head(airquality, 4)
df
# Ozone Solar.R Wind Temp Month Day
#    41     190  7.4   67     5   1
#    36     118  8.0   72     5   2
#    12     149 12.6   74     5   3
#    18     313 11.5   62     5   4

重命名列

colnames(df) <- paste0("Cat_", 1:ncol(df))
df
# Cat_1   Cat_2 Cat_3 Cat_4 Cat_5 Cat_6
#    41     190   7.4    67     5     1
#    36     118   8.0    72     5     2
#    12     149  12.6    74     5     3
#    18     313  11.5    62     5     4

...并将数据框拆分为单个矢量

list2env(df, envir=.GlobalEnv)

Cat_1
# 41 36 12 18

Cat_2
# 190 118 149 313

# .
# .
# .

答案 2 :(得分:-1)

您可以使用assign

for (i in 1:9){
  cat <- paste("Category_", i, sep = "")
  assign(cat, as.factor(df[,i]))
}