R 循环变量向量

R 循环变量向量,r,loops,R,Loops,我有一个过程,我想一次循环一个变量 虽然我的过程要复杂得多,但我已经用下面的例子来说明基本问题 假设我想建立一个直方图,并为iris中的每个变量做很多其他的事情。以下内容实现了这一目标: hist(iris$Sepal.Length, main = paste("Histogram of Sepal.Length")) hist(iris$Sepal.Width, main = paste("Histogram of Sepal.Width")) hist(iris$Petal.Length,

我有一个过程,我想一次循环一个变量

虽然我的过程要复杂得多,但我已经用下面的例子来说明基本问题

假设我想建立一个直方图,并为
iris
中的每个变量做很多其他的事情。以下内容实现了这一目标:

hist(iris$Sepal.Length, main = paste("Histogram of Sepal.Length"))
hist(iris$Sepal.Width, main = paste("Histogram of Sepal.Width"))
hist(iris$Petal.Length, main = paste("Histogram of Petal.Length"))
hist(iris$Petal.Width, main = paste("Histogram of Petal.Width"))
然而,我的数据帧要大得多,我的过程要复杂得多。我想把它包装成下面这样的循环(这不起作用,但这是我在脑海中的设想)


name.list如果将data.frame视为列表,则更容易。类
data.frame
的对象是一个列表,因此您可以在此处使用列表选择
[

for( i in names(iris)){
  tmp <- iris[[i]]
  if(is.numeric(tmp))
    hist(tmp, main = paste("Histogram of",i))
}
for(i在名称中(iris)){

tmp双方括号通过括号中内容的值获取列。因此
iris[[name.list[i]]
。谢谢。这肯定会让我知道我要去哪里,但Joris提供的答案看起来更干净、更好。@Pyl我的答案实际上与Spacedman给你的答案完全相同。我只是写了多一点,这样对R新手来说更容易阅读。这里的关键信息是
[[
.Spacedman说得很对。是的,我同意。他给了我我想要的东西,但你添加的那块我认为更干净的东西根本没有创建
名称。列出
向量。不管怎样,谢谢你们两位帮我整理。
for( i in names(iris)){
  tmp <- iris[[i]]
  if(is.numeric(tmp))
    hist(tmp, main = paste("Histogram of",i))
}