我有一个包含10行的数据框
df <- c(1:10)
如何向只有5行的数据框中添加另一列?
df2 <- c(1:5)
感谢您的帮助。
我有一个包含10行的数据框
df <- c(1:10)
如何向只有5行的数据框中添加另一列?
df2 <- c(1:5)
我在这里提供一些小技巧。看看 Tyler 在几个问题前面的回答,了解一些入门资料的链接:
将数据框列格式从字符转换为因子1)您使用 c()
制作的对象称为向量,这是 R 中最基本和最有用的对象之一。
2)data.frame
是一种 list
,其中列表的所有元素都作为列粘在一起,并且必须具有相同的长度。这些列可以是不同的数据类型(class
es)。
3)list
是 R 中最通用的对象类型-列表的元素可以是任何东西-任何大小、任何类。这似乎是您所要求的。
例如:
mylist <- list(vec1 = c(1:10), vec2 = c(1:5))
mylist
$vec1
[1] 1 2 3 4 5 6 7 8 9 10
$vec2
[1] 1 2 3 4 5
有不同的方法可以回到mylist
中的元素,例如:
mylist$vec1
mylist[1]
mylist[[1]]
mylist["vec1"]
mylist[["vec1"]]
还有更多!搜索“R初学者教程”并努力学习吧。玩得开心!
我知道两种方法可以得到你所要求的东西,但这可能不是解决问题的最佳方法,因为其他人已经指出了。我将向您展示的内容,我自己不会使用它(我很可能会像Tim一样选择列表选项)。
df <- data.frame(var=1:10) #notice I created a data.frame vs. the vector you called
new.col <- c(1:5)
#METHOD 1
df$new.col <- c(new.col, rep(NA, nrow(df)-length(new.col))) #keep as integer
#METHOD 2
df$new.col2 <- c(new.col, rep("", nrow(df)-length(new.col))) #converts to character
df #look at it
str(df) #see what's happening to the columns