我正在尝试初始化没有任何行的 data.frame。基本上,我想为每列指定数据类型并命名它们,但没有创建任何行作为结果。
到目前为止,我能做的最好的事情是:
df <- data.frame(Date=as.Date("01/01/2000", format="%m/%d/%Y"), File="", User="", stringsAsFactors=FALSE) df <- df[-1,]
它创建了一个 data.frame ,其中包含我想要的所有数据类型和列名的单行,但也创建了一个无用的行,然后需要将其删除。
有一个更好的方法吗?
只需用空向量初始化它:
df <- data.frame(Date=as.Date(character()), File=character(), User=character(), stringsAsFactors=FALSE)
这是另一个具有不同列类型的示例:
df <- data.frame(Doubles=double(), Ints=integer(), Factors=factor(), Logicals=logical(), Characters=character(), stringsAsFactors=FALSE) str(df) > str(df) 'data.frame': 0 obs. of 5 variables: $ Doubles : num $ Ints : int $ Factors : Factor w/ 0 levels: $ Logicals : logi $ Characters: chr
注意:
用错误类型的空列初始化 adata.frame不会阻止进一步添加具有不同类型列的行。 这种方法稍微 安全 一点,因为您从一开始就拥有正确的列类型,因此如果您的代码依赖于某些列类型检查,即使 a 行为data.frame零,它也可以工作。
data.frame