将列的类型更改为数字?

时间:2014-01-02 09:57:30

标签: r

数据如下。

 r
  V1 V2 V3 V4 V5
1  C  1  1  0 16
2  A  1  1 16  0
3  A  1  1 16  0
class(r)
[1] "data.frame"
class(r[,2])
character

我将2到5列更改为带有四个语句的数字。

as.numeric(r[,2])->r[,2]
as.numeric(r[,3])->r[,3]
as.numeric(r[,4])->r[,4]
as.numeric(r[,5])->r[,5]

如何只用一个声明更改它?

1 个答案:

答案 0 :(得分:1)

您可以使用lapply转换要转换的列。

您的起始数据(可能):

r
#   V1 V2 V3 V4 V5
# 1  C  1  1  0 16
# 2  A  1  1 16  0
# 3  A  1  1 16  0
str(r)
# 'data.frame':  3 obs. of  5 variables:
#  $ V1: chr  "C" "A" "A"
#  $ V2: chr  "1" "1" "1"
#  $ V3: chr  "1" "1" "1"
#  $ V4: chr  "0" "16" "16"
#  $ V5: chr  "16" "0" "0"

将除第一列以外的所有列转换为数字:

r[-1] <- lapply(r[-1], as.numeric)
r
#   V1 V2 V3 V4 V5
# 1  C  1  1  0 16
# 2  A  1  1 16  0
# 3  A  1  1 16  0
str(r)
# 'data.frame': 3 obs. of  5 variables:
#  $ V1: chr  "C" "A" "A"
#  $ V2: num  1 1 1
#  $ V3: num  1 1 1
#  $ V4: num  0 16 16
#  $ V5: num  16 0 0