我想创建一个函数X,它将另一个函数Y应用于多个变量。
功能Y
DplotV <- function (id,x){
D <- as.data.frame(cbind(id,x))
x1 <- as.data.frame(D[order(x),])
dotchart(x1$x,labels=id,pch=16)
}
DplotV(mydata$id,mydata$blood)
这基本上用变量x对id和变量x进行排序,并创建一个dotplot。我还创建了一些代码来命名图表并通过获取x变量名来保存它,我在这里没有包含它。在完整的功能中,我还有其他参数,如颜色等......所以为每个变量编写函数变成了一个重复且冗长的任务。
在处理大数据集时,最好使用相同的id变量绘制多个变量。
有没有办法将上述函数应用于数据集中的每个变量(但始终使用相同的id变量?)
理想情况下,我想要一个函数(例如DplotData)将DplotV应用于数据集中的所有变量(如果可能,除了id var),这样我就可以编写DplotData(mydata$id,mydata)
并且函数将循环执行所有数据集变量(在这种情况下为血液和重量)。
答案 0 :(得分:2)
使用?dotchart
中的示例,如果您的数据组织方式与VADeaths
类似:
VADeaths
Rural Male Rural Female Urban Male Urban Female
50-54 11.7 8.7 15.4 8.4
55-59 18.1 11.7 24.3 13.6
60-64 26.9 20.3 37.0 19.3
65-69 41.0 30.9 54.6 35.1
70-74 66.0 54.3 71.1 50.0
其中每列是变量,rownames是ids,然后只需调用dotchart(VADeaths)
即可生成分组点图:
或者,您可以使用分面,将数据融合为长格式,然后使用ggplot
:
require(plyr)
require(ggplot2)
ggplot(melt(VADeaths),aes(y = Var1,x = value)) +
facet_wrap(~Var2) +
geom_point()
答案 1 :(得分:0)