3
對不起,絕對初學者,所以有一些非常基本的問題!根據另一個數據框中的值對數據幀進行子集
我有一個非常大的數據集,列出了一個家庭的個人交易。示例如下。
# hh_id trans_type transaction_value
# 1 hh1 food 4
# 2 hh1 water 5
# 3 hh1 transport 4
# 4 hh2 water 3
# 5 hh3 transport 1
# 6 hh3 food 10
# 7 hh4 food 5
# 8 hh4 transport 15
# 9 hh4 water 10
我想創建一個新的數據框,其中列出的所有交易僅針對在「水」類別中具有交易的家庭。 (例如,我想要一個沒有以上hh3的df,因爲他們在「水」中沒有任何費用)
作爲第一步,我有一列數據框(hh_ids),只有家庭標識爲那些我想要的。然後,我如何對更大的數據框進行子集化,以刪除所有不屬於「水」類別開支的家庭的交易行?
數據
## data from @gung
d <- read.table(text="hh_id trans_type transaction_value
hh1 food 4
hh1 water 5
hh1 transport 4
hh2 water 3
hh3 transport 1
hh3 food 10
hh4 food 5
hh4 transport 15
hh4 water 10", header=T)
'DF2 < - DF1 [!DF1 $ TRANS_TYPE = 「水」,]' –
@akrun欺騙起來......這肯定不是原來的問題 –
你可以使用'library(data.table); setDT(df1)[,if(any(trans_type ==「water」)).SD,by = hh_id]'或'library(dplyr); df1%>%group_by(hh_id)%>%filter(any(trans_type ==「water」))'我確定會有一些蠢事,但不幸的是現在找不到它了。 (搜索谷歌花了將近10分鐘,仍然無法找到它,輸入答案而不是搜索欺騙程序效率更高嗎?) – akrun