具有不同列长度的R数据帧

具有不同列长度的R数据帧,r,R,我有一个10行的数据框 df <- c(1:10) df我将在这里给出一些小提示。有关入门材料的链接,请参见Tyler回答的几个问题: 1) 使用c()创建的对象称为向量,这是R中的一种特殊类型的对象,是最基本和最有用的类型 2) data.frame是一种列表,其中列表的所有元素都作为列粘在一起,并且必须具有相同的长度。列可以是不同的数据类型(classes) 3) lists是R中用途最广泛的对象-列表的元素可以是任何东西-任何大小,任何类别。这似乎就是你想要的 例如: m

我有一个10行的数据框

df <- c(1:10)

df我将在这里给出一些小提示。有关入门材料的链接,请参见Tyler回答的几个问题:

1) 使用
c()
创建的对象称为向量,这是R中的一种特殊类型的对象,是最基本和最有用的类型

2)
data.frame
是一种
列表
,其中列表的所有元素都作为列粘在一起,并且必须具有相同的长度。列可以是不同的数据类型(
class
es)

3)
list
s是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

而且可能更多!通过搜索“R初学者教程”查找教程,并对其进行增强。玩得开心

我知道有两种方法可以满足你的要求,但这可能不是解决问题的最佳方法,正如其他人所指出的那样。我将要向你们展示的东西我自己不会使用(我会选择列表选项,很可能就像Tim展示的那样)


df 1)c()将内容粘贴到向量中,该向量与data.frame不同。2)对于data.frames,请参见?data.frames 3)data.frames必须包含长度相等的列。对于长度不等的元素,请使用列表()。看见list@timriffe所有这些加起来就是一个很好的答案,伊姆霍。(提示!)这正是我想要的。。。2018年,它仍然有效!非常感谢你!!
    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$vec1
    mylist[1]
    mylist[[1]]
    mylist["vec1"]
    mylist[["vec1"]]
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