我想编写一个向数据框添加新变量的函数。该新变量包含在与参数中传递的一组变量相对应的值的串联中(作为字符串的向量)。在基础 R 中,我会写如下内容:
addConcatFields<-function(data,listOfVar)
{
data$uniqueId=data[,listOfVar[1]]
for(elt in listOfVar[2:length(listOfVar)])
{
data$uniqueId=paste(data$uniqueId,data[,elt],sep='_')
}
return(data)
}
addConcatFields(iris,c('Petal.Width','Species'))
# gives:
Sepal.Length Sepal.Width Petal.Length Petal.Width Species uniqueId
1 5.1 3.5 1.4 0.2 setosa 0.2_setosa
2 4.9 3.0 1.4 0.2 setosa 0.2_setosa
...
我最初的目标是使用 dplyr::mutate 来实现它,尽管我阅读了编程小插图http://127.0.0.1:31671/library/dplyr/doc/programming.html,但我没有达到我的目标。因为我想了解我错过的要点,所以我想使用 mutate 解决问题,我将不胜感激。