[英]How to select a column based on part of a contained string and then drop part of the column name in R? (Column position may vary)
我正在編寫 function 來准備 R 中的數據框,以便稍后在回歸中使用。 我想重命名包含單詞距離的任何列。 具體來說,我想刪除距離之前的第一個描述性詞。 (因此這將包括單詞距離開始之前的單詞和句點)。
我有:
country.distance.median country.distance.mean population life.q state.distance.mean
210 189 10000 0.6. 100
3100 2100 20000 0.7. 300
37 36 500 0.3 10
我想:
distance.median distance.mean population life.q distance.mean
210 189 10000 0.6 100
3100 2100 20000 0.7 300
37 36 500 0.3 10
因為這將包含在 function 中,所以列的數量和 position 是可變的,所以我需要一個不依賴於 position 列的解決方案。 請注意,它不應更改列名“life.q”,因此解決方案需要能夠基於距離字符串同樣識別 select 列。 請注意,距離前面的單詞也可能會發生變化(例如,列“state.distance.mean”)。
(它還應該能夠用作 function 中的 if 語句。)
感謝您的時間和想法。 :)
您可以嘗試在此處使用sub
:
names(df) <- sub("^country\\.(?=distance\\.)", "", names(df), perl=TRUE)
df
distance.median distance.mean population life.q
1 210 189 10000 0.6
2 3100 2100 20000 0.7
3 37 36 500 0.3
更一般地,要刪除以點開頭的第一個單詞,前提是單詞后面還有另一個點,您可以嘗試:
names(df) <- sub("^[^.]+\\.(?=.*\\.)", "", names(df), perl=TRUE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.