【问题标题】:Is there an R function to convert columns to given types? [duplicate]是否有将列转换为给定类型的 R 函数? [复制]
【发布时间】:2020-02-17 12:48:16
【问题描述】:

我正在寻找一个 R 函数,该函数将使用所需列类型的列表作为参数对数据框进行类型转换,即类似

df = data.frame(x="1", y="2")
df2 = convert(df, col.types=c("integer", "character"))

其中 df2 列将具有指定的类型。我使用了 tidyverse 中的 type_convert 函数,它接近我想要的,但不完全是。例如,它似乎需要列名

df2 = type_convert(df, col_types=cols(x=col_integer(),y=col_character())

这是我无法提前提供的(它不会在没有列名的情况下引发错误,但也不会做我想要它做的事情)。另外,我想将列类型指定为字符向量(就像 read.csv 函数一样),而不是 type_convert 使用 col_ 函数的繁琐方式。

我的最终目标是通过解析不是矩形但由矩形块组成的文件来扩展 read.csv 功能,例如像

2019-10-20 13:09:10 x: 1 S 16 y: 10 25 35 600 final

在文本文件中应该读入带有列的数据框

t="2019-10-20 13:09:10", x1=1, x2="S", x3=16, y1=10, y2=25, y3=35, y4=600, y5="final"

列名和类型将在运行时给出,我只是不希望它们被硬编码,所以我最终会得到几十个不同的 R 函数,每种不同格式 1 个。

如果有代码已经这样做了,请告诉我。

谢谢!

最好的问候, 尼古拉

【问题讨论】:

  • 谢谢,这正是我想要找到的。

标签: r tidyverse


【解决方案1】:

hablar有一个简单的解决方案

library(hablar)
library(dplyr)
df <- data.frame(x="1", y="2", z = "4")

df %>% 
  convert(int(x, z),
          chr(y))

您可以简单地放置多个列名来转换多个列,例如z 和 z 为整数,如上例所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多