我试图了解如何在向量上使用优秀的plyr包的命令(在我的情况下,使用字符串).我想我想要使用aaply,但它失败了,要求保证金.但是我的矢量中没有列或行!
更具体一点,以下命令有效,但返回结果列表很奇怪.states.df是一个数据框,region是状态的名称(使用Hadley的map_data("state")命令返回).因此,states.df $ region是字符串的向量(特别是州名).opinion.new是一个数字向量,使用州名命名.
states.df <- map_data("state")
ch = sapply(states.df$region, function (x) { opinion.new[names(opinion.new)==x] } )
Run Code Online (Sandbox Code Playgroud)
我想做的是:
ch = aaply(states.df$region, function (x) { opinion.new[names(opinion.new)==x] } )
Run Code Online (Sandbox Code Playgroud)
其中ch是从opinion.new查找或拉出的数字向量.但aaply需要一个数组,并在向量上失败.
谢谢!
如果要在向量上使用plyr,则必须使用l*ply,如下所示:
v <- 1:10
sapply(v, function(x)x^2)
[1] 1 4 9 16 25 36 49 64 81 100
laply(v, function(x)x^2)
[1] 1 4 9 16 25 36 49 64 81 100
Run Code Online (Sandbox Code Playgroud)
换句话说,sapply和laply是等价的