[英]How to select the value of a certain column based on the value of another column (R)
我需要在 R 中重新組織一個數據框,以便特定單位的新變量的值與該單位的年份相匹配。 我有 2010-2020 年所有個別年份的每個單位的值,但在特定年份觀察到個別單位。 我已經合並了數據,使得每個單位(無論其年份)都有列出的所有年份 2010-2020 的值。 每個年度值變量都是它自己的列。
我如何編寫代碼以使年份列中的值確定要從哪一列中提取? 我想將該結果值刪除到一個新列中,與該單位的年份相對應。
例如,在 2015 年觀察到第 4 單元,因此我將從第 6 列(變量 2015)中進行選擇,並將該值存入新列中。 但是第 5 單元是在 2016 年觀察到的,所以我將從第 7 列(變量 2016)中選擇值,並將其存入新列。
為圖像道歉,但因為我不熟悉降價表格式,所以數據框的縮短版本大致如下所示:
這就是我想用新變量創建的:
有沒有辦法對此進行編碼並根據 Year 列中的值選擇列?
嘗試這個
數據
df <- data.frame(Unit = c("Unit1" ,"Unit2","Unit3") ,
Year = c(2010 , 2011, 2012),
Variable2010 = c(4,2,2),
Variable2011 = c(5,6,1),
Variable2012 = c(1,0,7))
然后添加所需的列New_Variable
df$New_Variable <- sapply(1:nrow(df) ,
\(x) if(length(grep(df$Year[x] , colnames(df))) > 0)df[x,grep(df$Year[x] , colnames(df))] else NA)
輸出
df
Unit Year Variable2010 Variable2011 Variable2012 New_Variable
1 Unit1 2010 4 5 1 4
2 Unit2 2011 2 6 0 6
3 Unit3 2012 2 1 7 7
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.