R中的基本循环
basic loop in R
正在尝试创建一个循环以从我的 df 的 1:9 列中提取分类数据:
这样的事情似乎可行,但问题是只返回 las i 。在循环运行后缺少保留每个输出的东西。
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]
使用assign
。特别是:
for (i in 1:9){
assign(paste("Category_",sep="_",i),as.factor(df[,i]))
}
您可以使用 assign
for (i in 1:9){
cat <- paste("Category_", i, sep = "")
assign(cat, as.factor(df[,i]))
}
不需要循环
首先是一些示例数据
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
# .
# .
# .
正在尝试创建一个循环以从我的 df 的 1:9 列中提取分类数据:
这样的事情似乎可行,但问题是只返回 las i 。在循环运行后缺少保留每个输出的东西。
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]
使用assign
。特别是:
for (i in 1:9){
assign(paste("Category_",sep="_",i),as.factor(df[,i]))
}
您可以使用 assign
for (i in 1:9){
cat <- paste("Category_", i, sep = "")
assign(cat, as.factor(df[,i]))
}
不需要循环
首先是一些示例数据
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
# .
# .
# .