【发布时间】:2020-03-23 21:47:21
【问题描述】:
我正在使用 R 中的 for 循环;
我有一个包含 n 列的数据框。
我必须构建一个长度为 n 的向量,如果列是双精度,则每个元素为 1,否则为 0。
这是我尝试过的:
y<-rep(0,dim.data.frame(datafr)[2])
attach(datafr)
x<-names(dat)
for (j in 1:length(x)){
for(i in x){
if(is.double(i)){
y[j]<-1
}else{
y[j]<-0
}
}
}
但是,它不起作用,因为返回的 y 向量没有 1,而只有 n 0。
【问题讨论】:
-
sapply(datafr, is.double)会给你一个向量,每列匹配。在 Rdata.frames 中,一列通常是一个类(numeric、integer、character),因此每列无需检查多个值。 -
你知道 SO 的网络礼仪建议提问者应该[“接受”最佳答案]((stackoverflow.com/help/someone-answers))?这样做不仅为回答者提供了一些积分,而且还为有类似问题的读者提供了一些关闭。尽管您只能接受一个答案,但您可以选择对您认为有帮助的人进行投票。 (如果仍有问题,您可能需要编辑您的问题并提供更多详细信息。)(也请接受您的previous questions。)