使用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)