【发布时间】:2016-04-28 06:13:19
【问题描述】:
背景
这是改进以前的question 的尝试。这个想法是创建一个函数,在其中我传递一个数据框和一个可选的带有变量名称的向量,然后该函数迭代数据框中的变量,如果它们是数字的,它们将被转换。如果还传递了名称向量,则仅迭代列表中的那些。
使用的工具
代码和我卡住的地方:
transformDivideThousand <- function(data_frame, listofvars){
if (missing(listofvars)) {
data_frame[, sapply(data_frame, is.numeric)] =
data_frame[, sapply(data_frame, is.numeric)]/1000
} else {
for (i in names(data_frame)) {
for (i in listofvars) {
data_frame[[i]]<-data_frame[[i]]/1000
}
}
}
return(data_frame)
}
调用看起来像:
test <- transformDivideThousand(cases, c("col2", "col3", "col15"))
问题
- 我在该代码上遇到了什么问题?我设法使可选参数起作用,但代码中有问题。当我对其进行测试时,列表中的变量将转换为零。
警示性建议
- 如果您对这个问题投反对票,至少要说明原因!
【问题讨论】:
-
也许
if (i %in% listofvariables) {?请参阅set 了解更多信息。
标签: r