r - 有没有一种方法可以将列添加到函数形式的数据框中

有没有一种方法可以将列添加到函数形式的数据框中

dfs <- function(){iris}
d <- nrow(dfs())
dfs()$new <- seq_len(d)
Error in dfs()$new <- seq_len(d) : invalid (NULL) left side of assignment

预期输出

head(dfs())
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species new
1          5.1         3.5          1.4         0.2  setosa   1
2          4.9         3.0          1.4         0.2  setosa   2
3          4.7         3.2          1.3         0.2  setosa   3
4          4.6         3.1          1.5         0.2  setosa   4
5          5.0         3.6          1.4         0.2  setosa   5
6          5.4         3.9          1.7         0.4  setosa   6

最佳答案

全局环境中没有创建对象。在这种情况下,我们可以使用 transform

transform(dfs(), new = seq_len(d))

或者使用

 `[<-`(dfs(), "new", value =  seq_len(d))

如果我们想使用$,创建一个对象

tmp <- dfs()
tmp$new <- seq_len(d)

https://stackoverflow.com/questions/70625471/

相关文章:

r - 如何通过合并 csv 文件创建数据框,然后基于它创建 Shiny 的应用程序?

go - 我应该如何使用 protoc-gen-go-grpc?

c++ - 如何检查两个数组或列表是否相同?

kotlin - 为什么 Kotlin 不提示歧义?为什么要调用辅助构造函数?

html - 使用圆形元素的饼图

c++ - 如何保证使用编译时常量初始化堆栈变量

python - 如何阻止 Selenium 在执行期间关闭驱动程序?

reactjs - 为什么箭头函数可以工作但常规函数不能 React JS

r - 如何根据特定行的比较来消除变量

c - 如何跟踪全局变量重新定义问题的链接器问题