转换变量数据类型

时间:2018-04-03 09:07:14

标签: r optimization

我有一个包含25个变量的数据框。

我想转换2:8列; 10:17; 24:25作为数字。

我使用单独的for循环来转换数据类型。有没有办法,我可以使用单个for循环并将它们转换为数字。

另外,我想以日期格式转换9,18。

如果你可以帮助我将我的代码最小化为单个循环

,那将会很有帮助
for (i in 2:8){
  claim[,i] <- as.numeric(claim[,i])
}

for(i in 10:17){
  claim[,i] <- as.numeric(claim[,i])
}

for(i in 24:25){
  claim[,i] <- as.numeric(claim[,i])
}

2 个答案:

答案 0 :(得分:0)

这不是超级高效的,但首先想到的是定义一个包含要转换的索引的向量,然后像这样迭代它:

indices <- c(2:8, 10:17, 24:25)

for(i in indices) {
  claim[,i] <- as.numeric(claim[,i])
}

答案 1 :(得分:0)

试试这一行代码:

claim[,c(2:8,10:17,24:25)] <- lapply(claim[,c(2:8,10:17,24:25)], as.numeric)

this答案的改编。

date转换可以做同样的事情:

claim[,c(9,18)] <- lapply(claim[,c(9,18)], as.Date)