R写函数将列绑定到数据框
R write function to bind column to dataframe
我编写了一个函数,它通过对现有数据框的列进行子字符串操作来创建值向量:
fetchParent <- function(column){
substr(column,1,regexpr(":", column)-1)
}
此函数的示例 运行 是:
fetchParent(task2017.06.28$"Work Product")
这个returns一个向量:
[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)
结果 returns 没有新列的原始结果。
我在这里错过了什么?
你必须 return 新 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)
}
我编写了一个函数,它通过对现有数据框的列进行子字符串操作来创建值向量:
fetchParent <- function(column){
substr(column,1,regexpr(":", column)-1)
}
此函数的示例 运行 是:
fetchParent(task2017.06.28$"Work Product")
这个returns一个向量:
[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)
结果 returns 没有新列的原始结果。
我在这里错过了什么?
你必须 return 新 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)
}