【问题标题】:Converting data objects in R在 R 中转换数据对象
【发布时间】:2019-10-05 02:16:22
【问题描述】:

我有一个名为 dat 的数据对象,如下所示:

> dat


          PC1          PC2          PC3          PC4          PC5 
 6.403056e-04 5.433502e-04 7.888467e-05 6.776798e-05 2.589316e-05 

我想把 dat 转换成这个:

> dat
 [1] 6.403056e-04 5.433502e-04 7.888467e-05 6.776798e-05
 [5] 2.589316e-05

如何在 R 中做到这一点?

【问题讨论】:

  • 如果您在数据样本上添加调用dput 的输出会更容易提供具体帮助——现在,如果这里有数据类型问题,我们看不到它们跨度>

标签: r


【解决方案1】:

正如其他人指出的那样,您需要提供更多信息——从您提供的信息来看,您的数据到底是什么类型并不清楚。您可能有一个 data.frame,在这种情况下,您可以选择 Simon 的答案。但是,您的输出也很容易成为带有命名元素的向量:

dat <- c(PC1=6.403056e-04, PC2=5.433502e-04, PC3=7.888467e-05, PC4=6.776798e-05, PC5=2.589316e-05)
> dat
         PC1          PC2          PC3          PC4          PC5 
6.403056e-04 5.433502e-04 7.888467e-05 6.776798e-05 2.589316e-05 
> class(dat)
[1] "numeric"

在这种情况下,除了元素标签之外,您已经拥有了您所追求的东西。如果你真的需要摆脱它们,你可以像这样删除它们:

> names(dat)
[1] "PC1" "PC2" "PC3" "PC4" "PC5"
> names(dat) <- NULL
> dat
[1] 6.403056e-04 5.433502e-04 7.888467e-05 6.776798e-05 2.589316e-05

但是,删除它们可能没有真正的好处。

【讨论】:

    【解决方案2】:

    如果我正确理解您的需求,您有一个数据框dat,如下所示:

    > dat = data.frame(PC1=6.403056e-04, PC2=5.433502e-04, PC3=7.888467e-05, PC4=6.776798e-05,PC5=2.589316e-05) 
    > dat
               PC1          PC2          PC3          PC4          PC5
    1 0.0006403056 0.0005433502 7.888467e-05 6.776798e-05 2.589316e-05
    

    如果是这样,你可以得到一个向量如下:

    > as.numeric(dat[1,])
    [1] 6.403056e-04 5.433502e-04 7.888467e-05 6.776798e-05 2.589316e-05
    

    ...基于对Convert a row of a data frame to vector的回答。

    【讨论】:

      猜你喜欢
      • 2016-01-07
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      • 2023-01-26
      相关资源
      最近更新 更多