我有以下 Dataframe :
| 面积|年份|成功_第1年|成功_第2年|成功_第3年|
| - ------|- ------|- ------|- ------|- ------|
| 六个|1个|1个|第二章|四个|
| 七|第二章|第二章|三个|1个|
| 三十三|三个|三个|第二章|1个|
| 四十四|1个|第二章|1个|四个|
| 二十三|第二章|第二章|三个|1个|
| 五十三|三个|1个|第二章|四个|
现在我想得到一个单独的列,只在一年中的一年列中成功。像这样:
| 面积|年份|成功|
| - ------|- ------|- ------|
| 六个|1个|1个|
| 七|第二章|三个|
| 三十三|三个|1个|
| 四十四|1个|第二章|
| 二十三|第二章|三个|
| 五十三|三个|四个|
我该怎么做?加入之类的?选择如果?
我寻找的是
data_match <- data[ , grep("col", colnames(data))]
但这样就不会遍历行了。
4条答案
按热度按时间z31licg01#
可以使用2列矩阵进行索引:
其
dplyr
工作流程:注意:
pick(...)
周围的as.data.frame
是必需的,因为pick(...)
返回一个tbl_df
对象,该对象不支持矩阵索引。使用
case_match
的替代方法:wj8zmpe12#
使用
sapply
执行矢量化grep
,使用cbind
按行执行索引:falq053o3#
使用旋转(此处使用
tidyr
/dplyr
):输出:
e5nqia274#
嗨,谢谢你的答案!它们没有像预期的那样工作,但我找到了自己的解决方案: