为什么data.frame不';t解析数据帧参数?

为什么data.frame不';t解析数据帧参数?,r,R,这似乎与帮助文件中的内容相反: “如果将列表、数据框或矩阵传递给data.frame,则 每个组件或列都作为单独的参数传递” 那么我做错了什么 示例代码: d <- c("bla", "bla", "blou", "blou", "bli") dtest <- data.frame(d, stringsAsFactors=FALSE) dtest2 <- data.frame(dtest, stringsAsFactors=TRUE) dtest3 <- data.fra

这似乎与帮助文件中的内容相反:

“如果将列表、数据框或矩阵传递给data.frame,则 每个组件或列都作为单独的参数传递”

那么我做错了什么

示例代码:

d <- c("bla", "bla", "blou", "blou", "bli")
dtest <- data.frame(d, stringsAsFactors=FALSE)
dtest2 <- data.frame(dtest, stringsAsFactors=TRUE)
dtest3 <- data.frame(dtest[[1]], stringsAsFactors=TRUE)

str(c(dtest2, dtest3))

d这样做:
d测试我知道我可以用类似这样的方法来做后者:
我想你没有理解我的问题(我的错)。我希望data.frame的后续调用能够以与将实际列向量作为单独元素提供给数据帧相同的方式重新格式化数据帧。换言之,我不明白为什么在您的示例中,dtest2和dtest3不是factors.Data.frames是列表的列表。列表可以保存属性。将data.frame应用于现有dataframes不应更改列表的属性(尽管您的感觉显然有所不同)。您已经确定了如何获取因子(使用“[”),因此是否存在问题?是的。我希望函数data.frame按其应有的方式运行,或者理解我不了解的内容。我稍微修改了示例以反映更多的“问题”我明白了。我修改了我的答案以涵盖这种可能性,但添加stringsAsFactors参数没有什么不同,因为这是默认值。我知道它不会改变任何东西(前提是默认选项是factory选项),但我想强调data.frame()的两个实例之间行为的不对称性。您回答了我的问题,给出了data.frame应该如何处理数据帧的标准方法。那么,为什么帮助文件似乎是错误的呢?
  options(stringsAsFactors=FALSE)
> dtest2 <- data.frame(dtest)
> dtest3 <- data.frame(dtest[1])
> 
> str(c(dtest2, dtest3))
List of 2
 $ d: chr [1:5] "bla" "bla" "blou" "blou" ...
 $ d: chr [1:5] "bla" "bla" "blou" "blou" ...
data.frame(lapply(dtest, as.vector) )

> str(data.frame(lapply(dtest, as.vector) ))
'data.frame':   5 obs. of  1 variable:
 $ d: Factor w/ 3 levels "bla","bli","blou": 1 1 3 3 2