for (i in c(1:ncol(final_targets))) {
for (j in c(2:nrow(final_targets))) {
final_targets[j,i] <- as.numeric(final_targets[j,i])
}
}
data.class(final_targets[2,1]) [1] "字符"
无论我使用什么,输出始终显示为字符。我试过 as.integer,as.double。没用。
for (i in c(1:ncol(final_targets))) {
for (j in c(2:nrow(final_targets))) {
final_targets[j,i] <- as.numeric(final_targets[j,i])
}
}
data.class(final_targets[2,1]) [1] "字符"
无论我使用什么,输出始终显示为字符。我试过 as.integer,as.double。没用。
我们只需要一个循环而不是嵌套循环。s 特定于列type
,可以直接分配。但是,如果我们也循环遍历行,然后尝试分配行的每个元素,它将不起作用,因为其他值是character
并且列类型保持为character
for(i in seq_along(final_targets)) {
final_targets[,i] <- as.numeric(final_targets[,i])
}
该函数as.numeric()
是矢量化的。不需要嵌套循环,只需循环 akrun 提到的列。
您也可以使用dplyr
,
final_targets%>%mutate(across(everything(), as.numeric))
带底座 R
sapply(final_targets, as.numeric)
或与purrr
map_dbl(final_targets, as.numeric)