我想在字符串中的空格后删除所有内容.
例如:
"我的字符串很难过"
应该回来
"我的"
我一直试图弄清楚如何使用sub/qsub做到这一点,但到目前为止还没有成功.很感谢任何形式的帮助.
有没有人有一个技巧来删除变量上的尾随空格与gsub?
以下是我的数据示例.如您所见,我在变量中嵌入了尾随空格和空格.
county <- c("mississippi ","mississippi canyon","missoula ",
"mitchell ","mobile ", "mobile bay")
Run Code Online (Sandbox Code Playgroud)
我可以使用以下逻辑删除所有空格,但我真正想要的是仅在末尾移动空格.
county2 <- gsub(" ","",county)
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
我有如下数据,我想替换"." 空间使用gsub()但我无法得到正确的输出.
data<-c("12.57869486" ,"12.57869582" ,"12.57870155")
a<- gsub("."," ", data)
a
[1] " " " " " "
Run Code Online (Sandbox Code Playgroud) 为了清理一些凌乱的数据,我想开始使用管道%>%,但是如果gsub()不在管道的开头,我就不能使R代码工作,应该发生得晚(注意:这个问题不关心适当导入,但数据清理)
简单的例子:
df <- cbind.data.frame(A= c("2.187,78 ", "5.491,28 ", "7.000,32 "), B = c("A","B","C"))
Run Code Online (Sandbox Code Playgroud)
A列包含字符(在本例中为数字,但也可以是字符串),需要清除.步骤是
df$D <- gsub("\\.","",df$A)
df$D <- str_trim(df$D)
df$D <- as.numeric(gsub(",", ".",df$D))
Run Code Online (Sandbox Code Playgroud)
一个人可以轻易地解决这个
df$D <- gsub("\\.","",df$A) %>%
str_trim() %>%
as.numeric(gsub(",", ".")) %>%
Run Code Online (Sandbox Code Playgroud)
问题是第二个gsub,因为它要求输入....实际上是前一行的结果.
请问,任何人都可以解释如何在管道中进一步使用像gsub()这样的函数吗?非常感谢!
系统:R 3.2.3,Windows
我有一些可以包含字母、数字和“#”符号的字符串。
我想删除除以“#”开头的单词以外的数字
下面是一个例子:
"table9 dolv5e #10n #dec10 #nov8e 23 hello"
Run Code Online (Sandbox Code Playgroud)
预期的输出是:
"table dolve #10n #dec10 #nov8e hello"
Run Code Online (Sandbox Code Playgroud)
如何使用 regex、stringr 或 gsub 执行此操作?
我已经从 USPS 下载了街道缩写。这是数据:
dput(usps_streets)
structure(list(common_abbrev = c("allee", "alley", "ally", "aly",
"anex", "annex", "annx", "anx", "arc", "arcade", "av", "ave",
"aven", "avenu", "avenue", "avn", "avnue", "bayoo", "bayou",
"bch", "beach", "bend", "bnd", "blf", "bluf", "bluff", "bluffs",
"bot", "btm", "bottm", "bottom", "blvd", "boul", "boulevard",
"boulv", "br", "brnch", "branch", "brdge", "brg", "bridge", "brk",
"brook", "brooks", "burg", "burgs", "byp", "bypa", "bypas", "bypass",
"byps", "camp", "cp", "cmp", "canyn", "canyon", "cnyn", "cape",
"cpe", "causeway", "causwa", "cswy", "cen", "cent", "center",
"centr", "centre", "cnter", "cntr", "ctr", "centers", "cir",
"circ", "circl", …Run Code Online (Sandbox Code Playgroud) 我知道我们可以使用其他更有效的non-regex方式来做到这一点,例如+或+ ,但我想知道我们是否可以仅使用正则表达式来完成它。revstrsplitrevsubstring
例如,假设我们有一个 string s1 <- "ab82m4",我的gsub尝试是
> gsub(strrep("(.)", nchar(s1)), paste0(sprintf("\\%d", nchar(s1):1), collapse = ""), s1)
[1] "4m28ba"
Run Code Online (Sandbox Code Playgroud)
效果很好但很麻烦。
然而,当我们有更长的 刺 时s2 <- "ab82m42,x7",我们无法达到所需的输出,因为组数超过,这超出了(我猜)9允许的上限gsub
> gsub(strrep("(.)", nchar(s2)), paste0(sprintf("\\%d", nchar(s2):1), collapse = ""), s2)
[1] "a0x,24m28ba" # should be "7x,24m28ba"
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否有一种模式或解决方法可以应用gsub来反转字符串。确实对这种可能性感到好奇!:)
我很好奇实现目标的可能解决方法(而不是分组),即以正则表达式的方式反转字符串,而不是在这里讨论使用分组的可行性。
我有以下字符串,存储在对象中sentence:
sentence <- "aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013 http://t.co/tkuCRfLy \" $AAPL vs $AAPL \" August 2011 http://t.co/863HkVjn"
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用gsub删除以下开头的网址http:
sentence <- gsub('http.*','',sentence)
但是,它取代之后的所有内容http:
aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013
我想要的是:
aazdlubtirol: RT @tradeDayTrades: sister articles \"$AAPL Dancing in a Burning Room\" January 2013 \" $AAPL vs $AAPL \" August 2011
我正在尝试清理网址,所以如果字符串包含http我想要删除网址.我找到了一些解决方案,但他们没有帮助我.
我正在寻找一些关于数据重组的建议.我正在使用Google Forms收集一些数据,我将其作为csv文件下载,如下所示:
# alpha beta option
# 6 8, 9, 10, 11 apple
# 9 6 pear
# 1 6 apple
# 3 8, 9 pear
# 3 6, 8 lime
# 3 1 apple
# 2, 4, 7, 11 9 lime
Run Code Online (Sandbox Code Playgroud)
数据有两个变量(alpha和beta),每个变量都列出数字.对于我的大多数数据,每个变量中只有一个数字.但是,对于某些观察,可以有两个,三个甚至十个数字.这是因为这些是使用谷歌表单中的"复选框"选项收集的回复,它允许对一个调查问题的多个答案.此外,对于一些潜在的解决方案来说,google表单在每个多个答案之前返回前导空格可能很重要.
在我的实际数据中,这只发生在所有观察的很小一部分中,上面是一个更简洁的例子.数据集中还有其他几个变量.在这里,我只包括一个包含因子的"选项".
我需要做的是在'alpha'或'beta'变量中复制包含多个数字的所有观察.重复行的数量应该等于alpha或beta变量中存在的数字的数量.然后,我需要将'alpha'或'beta'变量中的数字序列单独替换为每个数字.这将导致类似以下内容:
# alpha beta option
# 6 8 apple
# 6 9 apple
# 6 10 apple
# 6 11 apple
# 9 6 pear
# 1 6 apple
# 3 8 pear
# 3 9 …Run Code Online (Sandbox Code Playgroud) 我试图在R中应用gsub来将字符串a中的匹配替换为字符串b中的相应匹配.例如:
a <- c("don't", "i'm", "he'd")
b <- c("do not", "i am", "he would")
c <- c("i'm going to the party", "he'd go too")
newc <- gsub(a, b, c)
Run Code Online (Sandbox Code Playgroud)
这样newc ="我要参加聚会","他也会参加聚会".这种方法不起作用,因为gsub只接受a和b的长度为1的字符串.执行循环以循环a和b将非常慢,因为实数a和b的长度为90且c的长度> 200,000.R中是否有矢量化方式来执行此操作?