R dplyr在函数中发生变异

时间:2018-05-08 04:32:03

标签: r dplyr tidyr mutate

这应该是一个非常简单的代码,我只是想将新变量绑定到现有的数据帧。但是,dplyr mutate似乎在函数内不起作用。当我调用addLocation函数时,不会添加项目。

位置数据(df.russia_locations)

 location    lon         lat
 Kalingrad  20.45221    54.71043        
  Moscow    37.61730    55.75583    

绑定到itemTest(可以是任何数据集)

     addLocation <- function(itemInfo){ itemInfo <- mutate(itemInfo,
                                     Kalingrad_lon = df.russia_locations[1,2],
                                     Kalingrad_lat = df.russia_locations[1,3],
                                     Moscow_lon = df.russia_locations[2,2],
                                     Moscow_lat = df.russia_locations[2,3]
                                    )}
     addLocation(itemTest)

我一定错过了什么?

1 个答案:

答案 0 :(得分:1)

您需要在功能的最后一个括号前添加return(itemInfo),或删除功能中的itemInfo <-作业。如果将函数的输出分配给名称,则会得到预期的打印输出。

> itemTest2 <- addLocation(itemTest)
> length(addLocation(itemTest))
[1] 5
> length(addLocation(itemTest))==length(itemTest)
[1] FALSE