【问题标题】:Converting data frame from logical to numeric将数据框从逻辑转换为数字
【发布时间】:2021-02-03 19:13:00
【问题描述】:

我有一个数据框,在 dput 之后的结构如下:

A= structure(list(`12` = logical(0)),
row.names = character(0), class = "data.frame"))

我是 R 新手,但最后我希望将 A 存储为数值变量,值为 12。它似乎是一个原子向量?眼下。例如,当我输入:

A <- as.numeric(as.character(A))

我返回一个空变量 A。当我键入时:

A <- lapply(data_list$A, as.numeric)

我再次得到一个 0 列表。非常感谢任何帮助!

【问题讨论】:

  • 数据集没有任何行。基于dput12 是列名而不是列的值
  • 是的,但是如何解决这个问题?它应该是一个标量。很明显,该值应该是12。目前,它似乎存储为原子向量
  • 是的,12应该是列的值,命名为A
  • 请查看我在下面发布的解决方案

标签: r


【解决方案1】:

你的问题很可能是这个sn-p:

`12` = logical(0)

当它显示logical(0) 时,表示您有一个长度为 0(空)的向量。这个向量的名字是 12。

当您将一个空向量转换为另一种类型时,您仍然会得到一个空向量(NULL 值。

由于您的向量为空,因此使用lapply 也不起作用。

【讨论】:

    【解决方案2】:

    值“12”是列名,数据集中有0行(基于dput)。所以,如果我们想转换,只需使用as.numeric

    as.numeric(names(A))
    #[1] 12
    

    【讨论】:

    • 太棒了。我会尽快接受。像魅力一样工作
    • 另外,Akrun,一方面,这很容易。假设我有两个数据框,A 和 B。有没有办法同时替换两个数据框?截至目前,我将这样做 A=as.numeric(names(A)) 和 B=as.numeric(names(B))
    • @KwameBrown 我会把它放在list 并使用lapply(list(names(A), names(B)), as.numeric)
    • 我实际上做了 List
    • @KwameBrown 你需要data_list[[i]] 而不是data_list$
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    相关资源
    最近更新 更多