簡體   English   中英

在R中,比較數據框中2行中的2個字段

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

您可以使用mutatelead使用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.

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