我有一个数据框,其中包含大约100个我想要更改为数字类型的因子变量。我怎样才能完成整个数据框?
我知道我可以使用此代码为每个变量执行此操作,例如:dat$.Var2<-as.numeric(dat$.Var2)
但是我想为很多变量做这件事。
这是一个示例数据框。
dat <- read.table(text = " TargetVar Tar_Var1 Var2 Var3
0 0 0 7
0 0 1 1
0 1 0 3
0 1 1 7
1 0 0 5
1 0 1 1
1 1 0 0
1 1 1 6
0 0 0 8
0 0 1 5
1 1 1 4
0 0 1 2
1 0 0 9
1 1 1 2 ", header = TRUE)
答案 0 :(得分:7)
您可以使用lapply
:
dat2 <- data.frame(lapply(dat, function(x) as.numeric(as.character(x))))
TargetVar Tar_Var1 Var2 Var3
1 0 0 0 7
2 0 0 1 1
3 0 1 0 3
4 0 1 1 7
5 1 0 0 5
6 1 0 1 1
7 1 1 0 0
8 1 1 1 6
9 0 0 0 8
10 0 0 1 5
11 1 1 1 4
12 0 0 1 2
13 1 0 0 9
14 1 1 1 2
str(dat2)
'data.frame': 14 obs. of 4 variables:
$ TargetVar: num 0 0 0 0 1 1 1 1 0 0 ...
$ Tar_Var1 : num 0 0 1 1 0 0 1 1 0 0 ...
$ Var2 : num 0 1 0 1 0 1 0 1 0 1 ...
$ Var3 : num 7 1 3 7 5 1 0 6 8 5 ...