![](/img/trans.png)
[英]R Iterating through data frame by comparing the previous value in the same column to the next
[英]Iterating through data frame and comparing
所以說我有一個非常簡單的數據幀,如下所示:
v h ptsv ptsh
PIT NE 21 28
GB KC 31 23
CHI HOU 27 20
它有訪問者( v
)和主隊( h
)列,並且有得分( ptsv
, ptsh
)列。 我想在數據框中創建一個新列,用於比較得分並輸入主隊或客隊首字母。
我寫了這段代碼:
tbl2$win <- rep("x",nrow(tbl2)) <BR>
tbl2$win <- ifelse(tbl2$ptsh > tbl2$ptsv, tbl2$h, tbl2$v)
它不是打印出首字母,而是按字母順序打印出它們的數字。 還是R的新手
tbl2$win <- ifelse(tbl2$ptsh > tbl2$ptsv, tbl2$h, tbl2$v)
您的第一行代碼不是必需的
您的data.frame
有factor
數據,這會混淆ifelse
:
str(tbl2)
#'data.frame': 3 obs. of 4 variables:
# $ v : Factor w/ 3 levels "CHI","GB","PIT": 3 2 1
# $ h : Factor w/ 3 levels "HOU","KC","NE": 3 2 1
# ...
從?ifelse
幫助頁面示例:
## ifelse()剝離屬性
##在使用日期和因素時這很重要
首先使用as.character
轉換這些列:
tbl2[c("v","h")] <- lapply(tbl2[c("v","h")], as.character)
ifelse(tbl2$ptsh > tbl2$ptsv, tbl2$h, tbl2$v)
#[1] "NE" "GB" "CHI"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.