"for loop" 中的箱线图:将字符串转换为变量
Boxplots in "for loop": Transforming character string to a variable
我正在尝试从数据框中绘制箱线图,并分别保存每个箱线图的图像,但出现错误。在代码的第 4 行,我认为“x”是一个字符串而不是变量。那么,如何将这个字符串转化为循环变量呢?
(i) 示例数据框:
df <- data.frame(var1=c(1, 3, 3, 4, 5),
var2=c(7, 7, 8, 3, 2),
type=factor(c('A','B','B','C','D'))) #dataframe
(ii) 示例查询:
LIST<-c('var1', 'var2')
(iii) 代码实现
for (j in LIST) #
{
png(print(paste0((j),".png")))
boxplot(as.numeric(paste("df",j, sep = "$")) ~ as.factor(df$type)) #..(4)
dev.off()
}
(iv) 错误信息
Error in stats::model.frame.default(formula = as.numeric(paste("df$", :
variable lengths differ (found for 'as.factor(df$type)')
In addition: Warning message:
In eval(predvars, data, env) : NAs introduced by coercion
您的代码比您需要的多。试试这个
for (j in LIST) #
{
png(paste0(j, ".png"))
boxplot(df[, j] ~ df$type)
dev.off()
}
我正在尝试从数据框中绘制箱线图,并分别保存每个箱线图的图像,但出现错误。在代码的第 4 行,我认为“x”是一个字符串而不是变量。那么,如何将这个字符串转化为循环变量呢?
(i) 示例数据框:
df <- data.frame(var1=c(1, 3, 3, 4, 5),
var2=c(7, 7, 8, 3, 2),
type=factor(c('A','B','B','C','D'))) #dataframe
(ii) 示例查询:
LIST<-c('var1', 'var2')
(iii) 代码实现
for (j in LIST) #
{
png(print(paste0((j),".png")))
boxplot(as.numeric(paste("df",j, sep = "$")) ~ as.factor(df$type)) #..(4)
dev.off()
}
(iv) 错误信息
Error in stats::model.frame.default(formula = as.numeric(paste("df$", :
variable lengths differ (found for 'as.factor(df$type)')
In addition: Warning message:
In eval(predvars, data, env) : NAs introduced by coercion
您的代码比您需要的多。试试这个
for (j in LIST) #
{
png(paste0(j, ".png"))
boxplot(df[, j] ~ df$type)
dev.off()
}