[英]ifelse() not storing values properly in R
我正在嘗試為for循環運行以下代碼:
ifelse(split[[1]]$timeframe == 'post',
split[[1]]$prcntgwk <- 1,
split[[1]]$prcntgwk <- 2)
它基本上是在創建計算,除非列時間范圍的值是“ post”,那么它將存儲NA,因為該計算不適用
這是我的輸出:
> ifelse(split[[1]]$timeframe == 'post',
+ split[[1]]$prcntgwk <- 1,
+ split[[1]]$prcntgwk <- 2)
[1] 2 2 2 2 2 2 2 1
但是,當我檢索該列時,我得到了:
> split[[1]]$prcntgwk
[1] 2 2 2 2 2 2 2 2
為什么我的值不能正確存儲? 這根本沒有任何意義。
您需要明智地執行操作元素,而不是整個向量。
> x = data.frame(a = c(1,2,3,4,5,6),b=c("post","no","post","post","no","post"))
> x
a b
1 1 post
2 2 no
3 1 post
4 1 post
5 2 no
6 1 post
> for (i in 1:nrow(x)) {
+ ifelse(x$b[i]=="post",x$a[i]<-1,x$a[i]<-2)}
> x$a
[1] 1 2 1 1 2 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.