【问题标题】:Is there an efficient alternative to mapply in R?在 R 中有没有比 mapply 有效的替代方法?
【发布时间】:2013-10-03 14:39:32
【问题描述】:

这是我正在尝试测试的示例数据和代码:

mydata<-structure(list(mpg = c(21, 21, 22.8, 21.4), cyl = c(6, 6, 4, 
6), disp = c(160, 160, 108, 258), hp = c(110, 110, 93, 110)), .Names = c("mpg", 
"cyl", "disp", "hp"), class = "data.frame", row.names = c("Mazda RX4", 
"Mazda RX4 Wag", "Datsun 710", "Hornet 4 Drive"))


 for(i in 1:4){
    show(mydata[i,1]*(mydata[i,2]/mydata[i,3])-mydata[i,4])
 }
[1] -109.2125
[1] -109.2125
[1] -92.15556
[1] -109.5023


 mapply(function(x,y,w,z){x*(y/w)-z},as.list(mydata[1]),as.list(mydata[2]),as.list(mydata[3]),as.list(mydata[4]))
            mpg
[1,] -109.21250
[2,] -109.21250
[3,]  -92.15556
[4,] -109.50233

我想知道在这种情况下我是否真的应该使用mapply。有没有更有效的方法来执行操作?

【问题讨论】:

    标签: r mapply


    【解决方案1】:

    只需使用矢量化解决方案

    mydata[,1]*(mydata[,2]/mydata[,3])-mydata[,4]
    

    【讨论】:

    • 我怎么错过了?非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2017-07-19
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多