dt <- data.frame(name = "John",children = I(list(c(1,2,3)))) name children
1 John 1, 2, 3试过这个之后
dt[nrow(dt) + 1,] = c("Amos", I(list(c(3,4,5))))我知道错误了
警告信息:
In
[<-.data.frame(*tmp*,nrow(dt) + 1,value = list("Amos“),:
替换元素2有3行替换1行
发布于 2022-07-21 13:32:48
我认为您的问题是c() --单行数据框架将是一个列表,而不是原子向量。尝试:
dt[nrow(dt) + 1,] = list("Amos", I(list(c(3,4,5))))或者:
dt <- rbind(dt, list("Amos", I(list(c(3,4,5)))))但是,请注意,根据下面的r2evans注释和到R地狱的链接,这是一种非常缓慢和内存不足的操作方式--使用大型数据帧,因为它们是为每一行重复的。有更好的方法来解决这个问题,我的回答只是为了解决您的原始代码不能工作的原因。
https://stackoverflow.com/questions/73066941
复制相似问题