我正在寻找一个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函数一样),而不是以麻烦的方式使用col_函数使用type_convert来实现。
我的最终目标是通过解析非矩形但由矩形块组成的文件来扩展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个。
如果已经有执行此操作的代码,请告诉我。
谢谢!
最好的问候, 尼古拉
答案 0 :(得分:1)
hablar
软件包中有一个简单的解决方案
library(hablar)
library(dplyr)
df <- data.frame(x="1", y="2", z = "4")
df %>%
convert(int(x, z),
chr(y))
您可以简单地输入多个列名来转换多个列,例如如上例所示,将z和z转换为整数。