[英]In R, comparing 2 fields across 2 rows in a dataframe
我正在嘗試比較R中數據幀上連續行中的2個不同字段,並指出不同的字段。 以下是輸入數據:
Start End
1 Atl Bos
2 Bos Har
3 Har NYC
4 Stf SFO
5 SFO Chi
我正在嘗試建立一個移動鏈,並且“結束”與下一行的“開始”不匹配,我想指示該行。 因此,對於上述內容,我將在第4行中指出以下內容:
Start End Ind
1 Atl Bos Y
2 Bos Har Y
3 Har NYC Y
4 Stf SFO N
5 SFO Chi Y
我對R很陌生,我曾嘗試查找此問題,但似乎找不到解決方案。 任何幫助表示贊賞。
一種替代方法是:
> Ind <- as.character(dat$Start[-1]) == as.character(dat$End [-length(dat$End)])
> dat$Ind <- c(NA, ifelse(Ind==TRUE, "Y", "N"))
> dat
Start End Ind
1 Atl Bos <NA>
2 Bos Har Y
3 Har NYC Y
4 Stf SFO N
5 SFO Chi Y
請注意,您的第一項應為<NA>
您可以使用mutate
和lead
使用dplyr
做到這dplyr
。 請注意,最后一項應為NA
因為沒有第6行可將SFO-CHI與之進行比較。
library(dplyr)
df1 <- read.table(text=" Start End
Atl Bos
Bos Har
Har NYC
Stf SFO
SFO Chi", header=TRUE, stringsAsFactors=FALSE)
df1 %>%
mutate(Ind=ifelse(End==lead(Start),"Y","N"))
Start End Ind
1 Atl Bos Y
2 Bos Har Y
3 Har NYC N
4 Stf SFO Y
5 SFO Chi <NA>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.