簡體   English   中英

如何根據包含的字符串的一部分 select 列,然后在 R 中刪除部分列名? (列 position 可能會有所不同)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM