簡體   English   中英

R:從數據框中提取某些行

[英]R: extracting certain rows from dataframe

這是一個示例數據框:

df1<-data.frame(c("A","B","C","D","F","G"),c(1,4,2,5,3,6), c(50,23,52,15,40,49))
colnames(df1)<-c("individual.ID","brood","weight")

df2<-data.frame(c("B","D","F"),c(1,2,3))
colnames(df2)<-c("mother.ID","brood.mother")

我正在嘗試為我的編程課解決一個作業,我已經做了兩個小時了,但似乎無法解決它。 任務是根據個體的體重繪制母親的體重。 母親包括在個人數據中。 df1 中的育雛表示這個人出生的育雛,df2 中的育雛表示母親生下的育雛(希望不要太混亂)

我不知道如何從數據框中提取母親的數據。 我認為最好將 df1 的第一列分成母親和非母親。 我懷疑必須以某種方式使用 merge() ,因為這是課程的主要主題。 我嘗試使用母親 ID 的字符串通過簡單的索引和子集來提取數據,但它不起作用(嘗試可能很愚蠢)

df1[df2$mother,]

subset(df1, ID==df2$mother, select="weight")

手動索引或子集不是一種選擇,因為我使用的數據有幾百行長。

此外,我們只被允許使用 R 基礎包,所以我很高興任何可以使用它的想法!

謝謝 :-)

這可以讓您找到一些清晰的路徑。 合並數據幀並為母親/非母親創建一個標志:

#Code
Merged <- merge(df1,df2,by.x=c('individual.ID'),by.y = c('mother.ID'),all.x = T)
#Flag
Merged$Flag <- 'Non-Mother'
Merged$Flag[!is.na(Merged$brood.mother)]<-'Mother'

輸出:

Merged
  individual.ID brood weight brood.mother       Flag
1             A     1     50           NA Non-Mother
2             B     4     23            1     Mother
3             C     2     52           NA Non-Mother
4             D     5     15            2     Mother
5             F     3     40            3     Mother
6             G     6     49           NA Non-Mother

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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