R编写函数将列绑定到数据框
Posted
技术标签:
【中文标题】R编写函数将列绑定到数据框【英文标题】:R write function to bind column to dataframe 【发布时间】:2017-07-04 03:03:48 【问题描述】:我编写了一个函数,它通过对现有数据框的列进行子字符串操作来创建值向量:
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)
结果返回原来的没有新列。
我在这里错过了什么?
【问题讨论】:
您是否将addParent(...)
的结果分配给了一个对象?喜欢df2 <- addParent(...)
?
【参考方案1】:
你必须返回新的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)
【讨论】:
谢谢。我昨晚在睡觉前不久发布了这个。正如经常发生的那样,当我躺在那里思考这个问题时,我认为这是非常基本的东西,但它超出了我的掌握。我不会很快忘记 return() 函数,再次感谢。以上是关于R编写函数将列绑定到数据框的主要内容,如果未能解决你的问题,请参考以下文章
R语言dplyr包的mutate函数将列添加到dataframe中或者修改现有的数据列:基于条件判断创建布尔型指示变量将异常离散编码转化为NA值