Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中的基本循环_R_Loops_Factors - Fatal编程技术网

R中的基本循环

R中的基本循环,r,loops,factors,R,Loops,Factors,尝试创建循环以从my 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 <-

尝试创建循环以从my 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]

Category\u 1使用
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]))
}
for(1:9中的i){
cat无需环路

首先是一些示例数据

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

当精确的数据被很好地集成到一个数据帧中时,为什么您希望在您的全局环境中有九个单独的向量对象?我想知道这需要什么操作。我想给它们命名,这样我就可以在一个大脚本中分别调用它们,在这个脚本中,我正在绘制PCA和树状图,并根据这些c绘制彩色标签类别。例如,在这里:
x\u category\u 1.pca您仍然可以从数据帧列调用它们:
..,groups=df[,1]
..,groups=df$Column1Name
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

# .
# .
# .