【发布时间】:2019-01-20 13:47:38
【问题描述】:
我已经尝试解决了几个小时,但我似乎无法获得我正在寻找的解决方案。如何在 R 中过滤数据框以获取某个唯一值,然后使用满足该条件的列名创建一个新列?
我有这个数据框:
dput(head(df1,10))
structure(list(WMA = c("20", "19", "19", "19", "18", "19", "20",
"20", "20", "19"), Waterbody = c("02040201070010-01", "02040202060040-01",
"02040202060050-01", "02040202060060-01", "02040202150070-01",
"02040202030080-01", "02040201080010-01", "02040201080020-01",
"02040201080030-01", "02040202070010-01"), Name = c("Back Creek (above Yardville-H Sq Road)",
"Barton Run (above Kettle Run Road)", "Barton Run (below Kettle Run Road)",
"Bear Swamp River", "Birch Creek", "Bisphams Mill Creek (below McDonalds Br)",
"Blacks Creek (above 40d06m10s)", "Blacks Creek (Bacons Run to 40d06m10s)",
"Blacks Creek (below Bacons Run)", "Bobbys Run"), DO = c("Insufficient Data",
"Non-attaining", "Non-attaining", "Insufficient Data", "Attaining",
"Attaining", "Attaining", "Attaining", "Attaining", "Insufficient Data"
), `DO Trout` = c("N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
"N/A", "N/A", "N/A"), pH = c("Insufficient Data", "Non-attaining",
"Non-attaining", "Insufficient Data", "Attaining", "Attaining",
"Attaining", "Attaining", "Attaining", "Insufficient Data"),
`Total Phosphorus` = c("Non-attaining", "Attaining", "Non-attaining",
"Insufficient Data", "Insufficient Data", "Non-attaining",
"Non-attaining", "Non-attaining", "Non-attaining", "Insufficient Data"
), Nitrate = c("Attaining", "Attaining", "Attaining", "Insufficient Data",
"Insufficient Data", "Attaining", "Attaining", "Attaining",
"Attaining", "Insufficient Data"), `Total Suspended Solids` = c("Attaining",
"Attaining", "Attaining", "Insufficient Data", "Insufficient Data",
"Insufficient Data", "Attaining", "Attaining", "Non-attaining",
"Insufficient Data"), `Total Dissolved Solids` = c("Insufficient Data",
"Attaining", "Attaining", "Insufficient Data", "Insufficient Data",
"Insufficient Data", "Attaining", "Attaining", "Attaining",
"Insufficient Data"), Turbidity = c("Insufficient Data",
"Attaining", "Attaining", "Insufficient Data", "Attaining",
"Insufficient Data", "Attaining", "Attaining", "Attaining",
"Insufficient Data"), `Unionized Ammonia` = c("Attaining",
"Attaining", "Attaining", "Insufficient Data", "Attaining",
"Insufficient Data", "Attaining", "Attaining", "Attaining",
"Insufficient Data"), `Unionized Ammonia Trout` = c("N/A",
"N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A"
), E.coli = c("Insufficient Data", "Attaining", "Attaining",
"Attaining", "Attaining", "Attaining", "Attaining", "Non-attaining",
"Non-attaining", "Attaining"), Enterococcus = c("N/A", "N/A",
"N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A"),
`Total Coliform` = c("N/A", "N/A", "N/A", "N/A", "N/A", "N/A",
"N/A", "N/A", "N/A", "N/A")), .Names = c("WMA", "Waterbody",
"Name", "DO", "DO Trout", "pH", "Total Phosphorus", "Nitrate",
"Total Suspended Solids", "Total Dissolved Solids", "Turbidity",
"Unionized Ammonia", "Unionized Ammonia Trout", "E.coli", "Enterococcus",
"Total Coliform"), row.names = c(NA, -10L), class = c("tbl_df",
"tbl", "data.frame"))
我想对每一列执行筛选,以查看哪些列具有唯一值“未达到”。然后,我想根据该列创建一个新列,该列显示符合此条件的列名。
这是我想要的电子表格:
【问题讨论】:
-
您能否确保显示与您的预期结果相对应的图像?
-
@Ozan147 对不起。修好了!
标签: r dataframe dplyr filtering