簡體   English   中英

ifelse()無法在R中正確存儲值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM