我编写了一个函数,它通过现有数据框的列上的子字符串操作创建值向量:
fetchParent <- function(column){
substr(column,1,regexpr(":", column)-1)
}
此功能的示例运行是:
fetchParent(task2017.06.28$"Work Product")
这会返回一个向量:
[1] "DE10946" "DE5909" "US30637" "US31460" "DE16399" "DE18046" "DE18841" "DE18904" "DE19138"
[10] "US48201" "US48314" "US48315" "US48316" "US48317 ...
我写了第二个函数将这个向量绑定到原始数据框:
addParent <- function(df){
df <- cbind(df,fetchParent(df$"Work Product"))
}
但是,当我运行此功能时:
addParent(task2017.06.28)
结果返回没有新列的原始文件。
我在这里缺少什么?
答案 0 :(得分:0)
您必须返回新的data.frame:
addParent <- function(df){
return(cbind(df,fetchParent(df$"Work Product")))
}
在你的fetchParent()函数中,这不是必需的,因为你没有将substr的输出分配给任何东西。
所以这也可行:
addParent <- function(df){
cbind(df,fetchParent(df$"Work Product"))
}
以及
addParent <- function(df){
df <- cbind(df,fetchParent(df$"Work Product"))
return(df)
}