-1
我需要将转换应用于大型数据框的所有数值变量。数据框也有其他类型的变量。我最初的想法是遍历所有列,检查它们是否数值,然后通过1000用函数转换数据帧中的所有数值变量
我被困在我的代码的功能划分他们,希望得到一些指点的位置:
transformDivideThousand <- function(data_frame){
for(i in ncol(data_frame)){
if (is.numeric(data_frame[i])) {
data_frame[i]/1000
}
}
return(data_frame)
}
功能的执行:
test <- transformDivideThousand(mypatients)
- 测试是一个数据框,但转换是没有发生。我在哪里犯错?
- 作为一个额外的,我也想transformDivideThousand有一个可选的参数,我可以传递一个列表的名称为变量使用,如果是空的,比迭代所有的。
您必须将结果重新分配到循环中。 'data_frame [[I]] < - data_frame [[I]]/1000'。使用双方括号来提取一列;你应该学习'['和'[[''的区别。例如,'is.numeric(data_frame [i])'几乎不会返回'TRUE'。此外,循环没有正确定义;应该是'for(i in 1:ncol(data_frame))',否则只考虑最后一列。 – nicola