aaply 在向量上失败

发布于 2024-10-22 20:11:05 字数 601 浏览 0 评论 0原文

我试图了解如何在向量(在我的例子中是字符串)上使用优秀的 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] } )

我想做的是:

ch = aaply(states.df$region, function (x) { opinion.new[names(opinion.new)==x] } )

其中 ch 是从 Opinion.new 中查找或提取的数字向量。但 aaply 需要一个数组,并且在向量上失败。

谢谢!

I am trying to understand how to use the excellent plyr package's commands on a vector (in my case, of strings). I suppose I'd want to use aaply, but it fails, asking for a margin. But there aren't columns or rows in my vector!

To be a bit more concrete, the following command works, but returns results in a wierd list. states.df is a data frame, and region is the name of the state (returned using Hadley's map_data("state") command). Thus, states.df$region is a vector of strings (specifically, state names). opinion.new is a vector of numbers, named using state names.

states.df <- map_data("state")
ch = sapply(states.df$region, function (x) { opinion.new[names(opinion.new)==x] } )

What I'd like to do is:

ch = aaply(states.df$region, function (x) { opinion.new[names(opinion.new)==x] } )

Where ch is the vector of numbers looked up or pulled from opinion.new. But aaply requires an array, and fails on a vector.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

九公里浅绿 2024-10-29 20:11:05

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

换句话说,sapply 和 laply 是等价的

If you want to use plyr on a vector, you have to use l*ply, as follows:

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

In other words, sapply and laply are equivalent

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文