使用lappy()自动执行重复代码,而不使用for()循环

使用lappy()自动执行重复代码,而不使用for()循环,r,split,histogram,lapply,R,Split,Histogram,Lapply,如何为红酒数据中的每个条件创建评级列的直方图(变量定义如下)? 这不需要编写循环就可以完成吗?我想我应该能够使用lappy() 拆分和应用的参考: 我想回答我自己的问题,因为我经常查看lappy()的示例,这些示例似乎很强大,但无法在我的代码中应用:)它们。然后最近,它只是点击 对于初学者来说,编写循环是理解lappy()的必要输入的良好开端。它可以用一种简单的方式转换为使用lappy(),而无需循环。在完成一些类似的示例之后,您可以从一开始就尝试使用lappy() for(i in 1

如何为
红酒数据
中的每个条件创建
评级
列的直方图(变量定义如下)? 这不需要编写循环就可以完成吗?我想我应该能够使用
lappy()

拆分和应用的参考:


我想回答我自己的问题,因为我经常查看
lappy()
的示例,这些示例似乎很强大,但无法在我的代码中应用:)它们。然后最近,它只是点击

对于初学者来说,编写循环是理解
lappy()
的必要输入的良好开端。它可以用一种简单的方式转换为使用
lappy()
,而无需循环。在完成一些类似的示例之后,您可以从一开始就尝试使用
lappy()

for(i in 1:length(l)){
  hist(l[[i]][["Ratings"]], main = l[[i]][["condition"]][1], xlab = "score")  
}
请注意,
hist
的第一个参数是数据帧(
l[[i]]
)的一列(
Ratings

l[[i][[“条件”]]
也是数据框架的一列,
l[[i][[“条件”]]][1]
是该列中的第一个条目

因此,我们需要一个函数来接受一个数据帧,提取
Ratings
列,并提取
condition
列的第一个条目。请注意它与
for
循环的主体有多么相似

wineHist <- function(inputDF){
  hist(inputDF[["Ratings"]], main = inputDF[["condition"]][1], xlab = "score")  
}
这将
l
设置为输入列表,并将
wineList()
应用于列表的每个元素

输出,
resultList
,是一个列表,每个直方图都有一个项目,并包含每个直方图的参数。运行此代码时,将创建所有4个图,如果原始输入数据帧中存在更多条件,将自动绘制更多直方图

这里有一个情节:


我想回答我自己的问题,因为我经常查看
lappy()
的示例,这些示例似乎很强大,但无法在我的代码中应用:)它们。然后最近,它只是点击

对于初学者来说,编写循环是理解
lappy()
的必要输入的良好开端。它可以用一种简单的方式转换为使用
lappy()
,而无需循环。在完成一些类似的示例之后,您可以从一开始就尝试使用
lappy()

for(i in 1:length(l)){
  hist(l[[i]][["Ratings"]], main = l[[i]][["condition"]][1], xlab = "score")  
}
请注意,
hist
的第一个参数是数据帧(
l[[i]]
)的一列(
Ratings

l[[i][[“条件”]]
也是数据框架的一列,
l[[i][[“条件”]]][1]
是该列中的第一个条目

因此,我们需要一个函数来接受一个数据帧,提取
Ratings
列,并提取
condition
列的第一个条目。请注意它与
for
循环的主体有多么相似

wineHist <- function(inputDF){
  hist(inputDF[["Ratings"]], main = inputDF[["condition"]][1], xlab = "score")  
}
这将
l
设置为输入列表,并将
wineList()
应用于列表的每个元素

输出,
resultList
,是一个列表,每个直方图都有一个项目,并包含每个直方图的参数。运行此代码时,将创建所有4个图,如果原始输入数据帧中存在更多条件,将自动绘制更多直方图

这里有一个情节:

wineHist <- function(inputDF){
  hist(inputDF[["Ratings"]], main = inputDF[["condition"]][1], xlab = "score")  
}
resultList <- lapply(X = l, FUN = wineHist)