R 在循环中存储结果时为名称添加后缀
我正在for循环中的R中绘制一些图,并希望使用名称来存储这些图,以描述正在绘制的函数,以及它来自哪些数据 因此,当我有一个包含两个数据集“x”和“y”的列表时,循环的结构如下:R 在循环中存储结果时为名称添加后缀,r,for-loop,paste,variable-names,R,For Loop,Paste,Variable Names,我正在for循环中的R中绘制一些图,并希望使用名称来存储这些图,以描述正在绘制的函数,以及它来自哪些数据 因此,当我有一个包含两个数据集“x”和“y”的列表时,循环的结构如下: x = matrix( c(1,2,4,5,6,7,8,9), nrow=3, ncol=2) y = matrix( c(20,40,60,80,100,120,140,160,180), nrow=3, ncol=2) data <- list(x,y) for (i in dat
x = matrix(
c(1,2,4,5,6,7,8,9),
nrow=3,
ncol=2)
y = matrix(
c(20,40,60,80,100,120,140,160,180),
nrow=3,
ncol=2)
data <- list(x,y)
for (i in data){
??? <- boxplot(i)
}
x=矩阵(
c(1,2,4,5,6,7,8,9),
nrow=3,
ncol=2)
y=矩阵(
c(20,40,60,80100120140160180),
nrow=3,
ncol=2)
数据我们可以创建一个空的列表
,其长度
与“data”相同,然后通过循环“data”序列存储for
循环的相应输出
out <- vector('list', length(data))
for(i in seq_along(data)) {
out[[i]] <- boxplot(data[[i]])
}
str(out)
#List of 2
# $ :List of 6
# ..$ stats: num [1:5, 1:2] 1 1.5 2 3 4 5 5.5 6 6.5 7
# ..$ n : num [1:2] 3 3
# ..$ conf : num [1:2, 1:2] 0.632 3.368 5.088 6.912
# ..$ out : num(0)
# ..$ group: num(0)
# ..$ names: chr [1:2] "1" "2"
# $ :List of 6
# ..$ stats: num [1:5, 1:2] 20 30 40 50 60 80 90 100 110 120
# ..$ n : num [1:2] 3 3
# ..$ conf : num [1:2, 1:2] 21.8 58.2 81.8 118.2
# ..$ group: num(0)
# ..$ names: chr [1:2] "1" "2"
最好不要在全局环境中创建多个对象。相反,如上所示,将对象放在列表中如果正确,则应尽量避免在全局环境中设置名称。但如果你真的需要,你可以试试这个
> y = matrix(c(20,40,60,80,100,120,140,160,180),ncol=1)
> .GlobalEnv[[paste0("plot_","y")]] <- boxplot(y)
> str(plot_y)
List of 6
$ stats: num [1:5, 1] 20 60 100 140 180
$ n : num 9
$ conf : num [1:2, 1] 57.9 142.1
$ out : num(0)
$ group: num(0)
$ names: chr "1"
y=矩阵(c(20,40,60,80100120140160180),ncol=1)
>.GlobalEnv[[paste0(“plot_u”,“y”)]]str(plot_uy)
6人名单
$stats:num[1:5,1]2060100140180
$n:num 9
$conf:num[1:2,1]57.9142.1
$out:num(0)
$group:num(0)
$names:chr“1”
通过在R命令提示符中键入?.GlobalEnv
,可以读取.GlobalEnv
> y = matrix(c(20,40,60,80,100,120,140,160,180),ncol=1)
> .GlobalEnv[[paste0("plot_","y")]] <- boxplot(y)
> str(plot_y)
List of 6
$ stats: num [1:5, 1] 20 60 100 140 180
$ n : num 9
$ conf : num [1:2, 1] 57.9 142.1
$ out : num(0)
$ group: num(0)
$ names: chr "1"