我有一個資料框,其中所有列都有字符類。我想自動將每列的類轉換為最適合資料“最佳”的類。
考慮以下示例資料:
data <- data.frame(x1 = letters[1:5],
x2 = as.character(1:5),
x3 = as.character(seq(0.2, 1, 0.2)))
data
x1 x2 x3
1 a 1 0.2
2 b 2 0.4
3 c 3 0.6
4 d 4 0.8
5 e 5 1
我們示例資料中的所有列都具有字符類:
sapply(data, class)
# x1 x2 x3
# "character" "character" "character"
我可以手動將每一列轉換為所需的類。但是,對于大型資料集,這可能效率不高。
有沒有辦法自動掃描每列中的值并將相應的列轉換為更好的類?
在此示例中,列 x2 包含整數,列 x3 包含數字。因此,所需的類將如下所示:
sapply(data, class)
# x1 x2 x3
# "character" "integer" "numeric"
uj5u.com熱心網友回復:
使用type.convert(),as.is=TRUE可以防止將字符強制轉換為因子。
data <- data |> type.convert(as.is=TRUE)
str(data)
# 'data.frame': 5 obs. of 3 variables:
# $ x1: chr "a" "b" "c" "d" ...
# $ x2: int 1 2 3 4 5
# $ x3: num 0.2 0.4 0.6 0.8 1
R < 4.1:
data <- type.convert(data, as.is=TRUE)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/394662.html
上一篇:具有2個邏輯向量的向量化操作的問題:根據另一個向量中的FALSE值將第一個向量中的值替換為NA
下一篇:在R中用亂數替換字符
