as.numeric在数据帧​​的子集上

时间:2016-04-25 12:07:16

标签: r dataframe

如何将第1列和第2列转换为数字?我试过这个对我来说很明显,但事实并非如此。

由于

md5

3 个答案:

答案 0 :(得分:3)

我们可以使用lapply循环感兴趣的列并转换为数字

 df[1:2] <- lapply(df[1:2], as.numeric)

答案 1 :(得分:0)

我建议使用unlist这种方法。我特别喜欢&#34;一行&#34;在可能的情况下。对于更多选项和参考,我强烈建议这美丽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

答案 2 :(得分:0)

您可以在没有任何隐藏循环的情况下使用矩阵索引:

df[, 1:2] <- as.numeric(as.matrix(df[, 1:2]))