我對R很新,我試圖創建一些新的變量。基本上我的數據集中有個人的母親身份是變量(即如果兩個人有同一個母親,這個變量的值將是相同的)。在R中創建虛擬變量
保持簡單開始,讓我們說我想創建一個虛擬變量= 1,如果兩個人是兄弟姐妹。我嘗試過使用:
dummy <- as.numeric(duplicated(Identifiers_age$MPUBID) = TRUE)
但是我得到的矢量只有一個兄弟姐妹中的一個。我該怎麼做?
感謝
我對R很新,我試圖創建一些新的變量。基本上我的數據集中有個人的母親身份是變量(即如果兩個人有同一個母親,這個變量的值將是相同的)。在R中創建虛擬變量
保持簡單開始,讓我們說我想創建一個虛擬變量= 1,如果兩個人是兄弟姐妹。我嘗試過使用:
dummy <- as.numeric(duplicated(Identifiers_age$MPUBID) = TRUE)
但是我得到的矢量只有一個兄弟姐妹中的一個。我該怎麼做?
感謝
如果你的目標是返回0和1的地方是1,如果觀測單元具有同級的載體,那麼你要包括第二duplicated
語句fromLast = TRUE。
第一個重複函數將爲第一個兄弟之後的MPUBID中的同胞數量返回一個1,第二個重複的函數將拾取第一個兄弟。
hasSiblings <- as.integer(duplicated(Identifiers_age$MPUBID) |
duplicated(Identifiers_age$MPUBID, fromLast=TRUE))
|
是矢量邏輯運算符OR。請注意,duplicated
會返回一個邏輯向量,所以您不必像在問題中一樣包含= TRUE。
一個dplyr
答案:
library(dplyr)
Identifiers_age %>%
group_by(MPUBID) %>%
mutate(hasSiblings = as.integer(n() > 1))
你在看一個總和?或者你想分組?沒有一個虛擬的數據集和預期的輸出,很難說出你在做什麼之後(兄弟姐妹的數量或者是否至少有1個) – Tensibai
[編輯]你的問題來澄清它,評論 – Tensibai
對不起,我應該更清楚,我只是尋找一個二進制變量= 1,如果個人至少有一個兄弟姐妹。 – Milhouse