尝试创建循环以从我的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]
答案 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]))
}