我喜欢从 Dataframe 中选择每行最后3个非空值:
df <- structure(list(V1 = c("Johannes Gutenberg University of Mainz",
"Eldagsener Str. 38", "Linneper Weg 1", "Gohrstraße 74", "Düppelstraße 36",
"Blutspende: Haus A3"), V2 = c(" Gebäude 900", " 31832 Springe",
" 40885 Ratingen", " 47475 Kamp-Lintfort", " 12163 Berlin", " Ebene -3"
), V3 = c(" Augustuspl. 4", " Germany", " Germany", " Germany",
" Germany", " Zentrum Innere Medizin (ZIM Blutbank / Immunhämatologisches Labor Haus A1"
), V4 = c(" 55131 Mainz", "", "", "", "", " Zentrum Operative Medizin (ZOM"
), V5 = c(" Germany", "", "", "", "", " Oberdürrbacher Str. 6"
), V6 = c("", "", "", "", "", " 97080 Würzburg"), V7 = c("",
"", "", "", "", " Germany")), row.names = 24:29, class = "data.frame")
有时候,在开头有一些不相关的文本信息,结尾有一些空的单元格,关键的信息总是每行最后3个非空的条目。
我想使用tidyverse
,但也欢迎使用其他解决方案。
4条答案
按热度按时间shyt4zoc1#
逐行循环- * 应用 *,删除空白,获取最后3个值:
**注意:**如果值之间有空格,则会将其删除,并且列可能无法对齐,例如,比较第一行:
klr1opcd2#
wh6knrhe3#
使用tidyr和dplyr:
lsmepo6l4#
假设您的最后三列命名为“V5”、“V6”和“V7”,如示例所示,您可以在一行命令中使用
filter
如果你只需要这些列,你可以