aaply在向量上失败

bsh*_*hor 0 r plyr

我试图了解如何在向量上使用优秀的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需要一个数组,并在向量上失败.

谢谢!

And*_*rie 5

如果要在向量上使用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是等价的

  • 你仍然可以使用`aaply`:`aaply(v,1,function(x)x ^ 2)` (4认同)