如何將第1列和第2列轉換爲數字?我試過這個對我來說很明顯的東西,但沒有。as.numeric數據集的子集
感謝
df <- data.frame(v1 = c(1,2,'x',4,5,6), v2 = c(1,2,'x',4,5,6), v3 = c(1,2,3,4,5,6), stringsAsFactors = FALSE)
as.numeric(df[,1:2])
如何將第1列和第2列轉換爲數字?我試過這個對我來說很明顯的東西,但沒有。as.numeric數據集的子集
感謝
df <- data.frame(v1 = c(1,2,'x',4,5,6), v2 = c(1,2,'x',4,5,6), v3 = c(1,2,3,4,5,6), stringsAsFactors = FALSE)
as.numeric(df[,1:2])
我們可以使用lapply
遍歷感興趣的欄目,並轉換爲數字
df[1:2] <- lapply(df[1:2], as.numeric)
我建議這種方法,使用unlist
。如果可能的話,我特別喜歡「單線」方法。對於更多的選擇和參考,我強烈建議這個美麗的post。
df <- data.frame(v1 = c(1,2,'x',4,5,6), v2 = c(1,2,'x',4,5,6),
v3 = (1,2,3,4,5,6), stringsAsFactors = FALSE)
df[, c("v1","v2")] <- as.numeric(as.character(unlist(df[, c("v1","v2")])))
Warning message:
NAs introduced by coercion
str(df)
data.frame': 6 obs. of 3 variables:
$ v1: num 1 2 NA 4 5 6
$ v2: num 1 2 NA 4 5 6
$ v3: num 1 2 3 4 5 6
可以使用矩陣索引沒有任何隱藏的循環:
df[, 1:2] <- as.numeric(as.matrix(df[, 1:2]))
'DF [1:2] < - lapply(DF [1:2],as.numeric)'' – akrun
DF [ ,1:2] < - as.numeric(as.matrix(df [,1:2]))' – jogo