【问题标题】:Promise object to DataFrame对 DataFrame 的承诺对象
【发布时间】:2018-03-27 05:38:41
【问题描述】:

我想从 R 工作室的 ElemStatLearn 包中加载数据集。
但是当我加载数据集时,我的全局环境面板显示

library("ElemStatLearn")
data("nci")

但是,当我执行

View("nci")

我可以看到整个数据,但无法将其导出到数据框。

如何将此数据集转换或导出为数据框?

【问题讨论】:

  • 我没有得到像你所说的那样ncimatrix objectstr(nci)# num [1:6830, 1:64] 0.3 1.18 0.55 1.14 -0.265 ... - attr(*, "dimnames")=List of 2 ..$ : NULL ..$ : chr [1:64] "CNS" "CNS" "CNS" "RENAL" ...
  • 谢谢,@DavidArenburg 这行得通。但我不明白为什么会这样。我通常使用 df

标签: r dataframe


【解决方案1】:

你可以的

df <- data.frame(nci)

另一种方法是

df <- get(data("nci"))

【讨论】:

  • 不。它说 1 obs。我的全局环境中的 1 个变量。
  • 应该是df &lt;- data.frame(nci)(不带引号)。
  • 第二个解决方案将返回 matrix 而不是 data.frame
  • 如果对你有用,你可以选择答案,谢谢
  • @djhurio 它确实返回 data.frame > x &lt;- get(data("mtcars")) &gt; class(x) [1] "data.frame"
【解决方案2】:

如果您使用名称 nci 进行了任何需要修改或评估的操作,那么 R 引擎将在此时提取值并且您将不再有任何承诺。相反,您要求查看的不是 R 名称,而是 R 文字字符值。 “nci”的值就是“nci”。另一方面,nci 的值在我尝试查看时有 6,830 个条目。

data 函数可以接受一个字符值来检索外部存储的对象,但View 函数需要一个真实的(不带引号的)R 名称。或者你可以使用:View(as.name("nci") )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-04
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 2019-08-11
    • 2020-09-10
    相关资源
    最近更新 更多