我的原始数据如下:
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将是数字(尽管将被报告为char),C2大部分将是数字,除了一个字符值,C3是字符,C4将是数字(如果仅包含0/1,则可能是逻辑的)。我可以编写函数来解决这个问题,只是不想重新发明轮子(如果存在)?
最终目标是编写一个清理/转换函数,以(在很大程度上)自动修复原始数据。
欢呼 B
答案 0 :(得分:1)
您可以使用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