数据如下。
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]
如何只用一个声明更改它?
答案 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