Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 修剪列中的结束连字符_R_String_Dataframe_Delimiter_Hyphen - Fatal编程技术网

R 修剪列中的结束连字符

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

我有一个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---
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"
#数据
x
gsub(“-+$”,“”,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"