我有一个data.frame,其中每一行都是一条推文,每一行都是一个属性(“text”,“user”等) .
我编写了一个函数“processTweet()”,它接受data.frame的一行并更改tweet中的3列(“X”,“Y”和“Z”)并返回此修改后的单行data.frame .
我目前正在尝试找出如何使用类似dplyr或类似应用的函数来实际反映原始data.frame中的这些修改 .
我知道我可以将processTweet函数拆分为3,但这样效率很低,因为我必须多次执行相同的逻辑查找 .
我尝试过使用带行的dplyr,但我显然做错了,因为更改没有反映在tweets data.frame中,而mutate似乎允许修改一列,但不是几行:tweets%>%rowwise ()%>%processTweet()
2 回答
经过一些试验和很多错误,似乎有效的ddplyr方式是:
tweets = as.data.frame(tweets%>%rowwise()%>%do(processTweet( . ))%>%rbind())
似乎找到了使用plyr的答案
tweets = adply(.data = tweets,.margins = 1,.fun = processTweet)
但是部署实施仍然是一个谜 .
当结果保存到单个列时,以下问题/答案有效,但当我们想要在函数Applying a function to every row of a table using dplyr?中返回整个data.frame时,不清楚该怎么做