我想要有两列的数据框,其中一列是字符,第二列是列表。
我需要的只是有两个函数:
-createEmptyDf()
它创建没有行的此类数据框
-addRowToDf(df, valueCharacter, valueList)
向 df 添加一行然后返回它
我对这两个变量都有一些问题,尤其是当我向空 df 添加一行时。
有人可以告诉我如何简单地制作它吗?
例子:
df <- createEmptyDf()
nrow(df) # should return 0
df <- addRowToDf(df, "AAA", list("A", 1, "B"))
nrow(df) # should return 1
df[1, "varCharacter"] # should return "AAA"
df[1, "varList"] # should return list("A", 1, "B")
我终于知道出了什么问题 - 当我想添加新行时,valueList 应该像 I(list(list(values))):
回答
createEmptyDf <- function(){
df <- data.frame(varCharacter = character(0), varList = I(list()))
return(df)
}
addRowToDf <- function(df, valueCharacter, valueList){
row <- data.frame(varCharacter = valueCharacter, varList = I(list(valueList)))
df <- rbind(df, row)
return(df)
}
df <- createEmptyDf()
df <- addRowToDf (df, "AAAA", list("A", 2 ,3))