R语言 从纯文本数据确定“真实的”数据类型[重复]

q7solyqu  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(140)
    • 此问题在此处已有答案**:

Guess correct column storage mode from data.frame of strings(4个答案)
四年前关闭了。
我的原始数据如下:

C1    C2        C3     C4
"1"   "6464"    "abc"  "1"
"2"   "3434"    "def"  "0"
"3"   "3434"    "ghi"  "1"
"4"   "asd"     "jkl"  "1"
"5"   "4565"    "mno"  "0"

我知道我可以使用 * str type mode class * 等来确定数据类型,但是R中是否有任何包可以根据原始数据内容本身来估计主要类型?
例如,我可以看到C1是数字(尽管它会被报告为字符),C2大部分是数字,除了一个字符值,C3是字符,C4是数字(或者如果它只包含0/1,可能是逻辑)。我可以去写函数来解决这一切,只是不想重新发明轮子,如果它存在?
最终目标是编写一个clean/convert函数来(在很大程度上)自动修复原始数据。

t98cgbkg

t98cgbkg1#

您可以使用readr::parse_guess来自动猜测向量的类型。
下面是一个例子

# Read data as data.table of character vectors
df <- read.table(text =
    'C1    C2        C3     C4
1   6464    abc  1
2   3434    def  0
3   3434    ghi  1
4   asd     jkl  1
5   4565    mno  0', header = T, colClasses = "character")

library(purrr)
library(readr)
map_df(df, ~parse_guess(.x))
## A tibble: 5 x 4
#     C1 C2    C3       C4
#  <int> <chr> <chr> <int>
#1     1 6464  abc       1
#2     2 3434  def       0
#3     3 3434  ghi       1
#4     4 asd   jkl       1
#5     5 4565  mno       0

相关问题