R 修剪列中的结束连字符
我有一个data.frame列,看起来像:R 修剪列中的结束连字符,r,string,dataframe,delimiter,hyphen,R,String,Dataframe,Delimiter,Hyphen,我有一个data.frame列,看起来像: Lake-and-Peninsula-- Matanuska-Susitna--- Nome---- North-Slope--- Northwest-Arctic--- Prince-of-Wales-Outer- Sitka---- Skagway-Hoonah-Angoon-- Southeast-Fairbanks--- Valdez-Cordova--- Wade-Hampton--- Wrangell-Petersburg--- Yakut
Lake-and-Peninsula--
Matanuska-Susitna---
Nome----
North-Slope---
Northwest-Arctic---
Prince-of-Wales-Outer-
Sitka----
Skagway-Hoonah-Angoon--
Southeast-Fairbanks---
Valdez-Cordova---
Wade-Hampton---
Wrangell-Petersburg---
Yakutat----
每个单元格以一定数量的连字符结尾。我想删除单元格末尾的所有连字符,但保留单词之间的连字符。我该怎么做?最多只有4个连字符,有时甚至没有
期望输出:
Lake-and-Peninsula
Matanuska-Susitna
Nome
North-Slope
Northwest-Arctic
Prince-of-Wales-Outer
Sitka
Skagway-Hoonah-Angoon
Southeast-Fairbanks
Valdez-Cordova
Wade-Hampton
Wrangell-Petersburg
Yakutat
我们可以使用
sub
匹配字符串($
)末尾的一个或多个-
(-+
)并将其替换为空白
df1$Col <- sub("-+$", "", df1$Col)
df1
# Col
#1 Lake-and-Peninsula
#2 Matanuska-Susitna
#3 Nome
#4 North-Slope
#5 Northwest-Arctic
#6 Prince-of-Wales-Outer
#7 Sitka
#8 Skagway-Hoonah-Angoon
#9 Southeast-Fairbanks
#10 Valdez-Cordova
#11 Wade-Hampton
#12 Wrangell-Petersburg
#13 Yakutat
df1$Col根据尾随连字符的数量,我猜我们获取这些字符串的方式是因为初始数据帧中有一些空白单元格。然后我们用连字符作为分隔符将列粘贴到一个列中
相反,粘贴前应排除空格,以避免此额外的连字符问题,例如:
# data
x <- c("Lake", "and", "Peninsula", "", "")
# paste old
paste(x, collapse = "-")
# [1] "Lake-and-Peninsula--"
# paste after removing blanks
paste(x[ x != ""], collapse = "-")
# [1] "Lake-and-Peninsula"
#数据
xgsub(“-+$”,“”,df$列)
# data
x <- c("Lake", "and", "Peninsula", "", "")
# paste old
paste(x, collapse = "-")
# [1] "Lake-and-Peninsula--"
# paste after removing blanks
paste(x[ x != ""], collapse = "-")
# [1] "Lake-and-Peninsula"