楼主: tiansiyu_sh
15782 9

[问答] r语言数据预处理问题!如何去掉字符前方的空格! [推广有奖]

  • 2关注
  • 0粉丝

已卖:4份资源

大专生

73%

还不是VIP/贵宾

-

威望
0
论坛币
121 个
通用积分
2.0500
学术水平
0 点
热心指数
0 点
信用等级
5 点
经验
12831 点
帖子
26
精华
0
在线时间
76 小时
注册时间
2015-9-2
最后登录
2025-11-10

楼主
tiansiyu_sh 发表于 2017-7-18 22:39:40 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如数据为:“               aa bbcc    ddee     ”,期待结果为:“aa bbcc    ddee     ”
如何只去掉最前方的空格,而字符中的空格不去掉?

谢谢各位大神!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据预处理 预处理 R语言 DDE BCC

沙发
crystal8832 学生认证  发表于 2017-7-18 23:10:47
  1. substring(x, 2)
复制代码
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

藤椅
yohoowu 在职认证  发表于 2017-7-18 23:11:06
aa = "               aa bbcc    ddee     "
substr(aa, which(strsplit(aa, split=' ') %>% unlist(.) != ''), nchar(aa))


已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

板凳
fortune9 发表于 2017-7-19 01:42:32
可以用以下代码,

  1. a<-"               aa bbcc    ddee     "
  2. res<-sub("^\\s+","",a)
复制代码
这个代码不仅可以替换前面的空格,还可以替换tab等其他空字符。具体参数可以参考sub函数的help 文档。
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

报纸
小朝 发表于 2017-7-19 09:52:23
  1. library(stringr)
  2. a <- '      aa bbcc    ddee   '
  3. str_trim(a,'left')
复制代码


输出结果:[1] "aa bbcc    ddee   "
如果剔除前和后的空格,left改成both
已有 2 人评分论坛币 热心指数 信用等级 收起 理由
刘伟源 + 1 + 1 我很赞同
admin_kefu + 10 精彩帖子

总评分: 论坛币 + 10  热心指数 + 1  信用等级 + 1   查看全部评分

地板
tiansiyu_sh 发表于 2017-7-19 20:28:35
fortune9 发表于 2017-7-19 01:42
可以用以下代码,

这个代码不仅可以替换前面的空格,还可以替换tab等其他空字符。具体参数可以参考sub函 ...
再请问一下,我要取a和d之间的所有,需要怎么写?
输入"               aa bbcc    ddee     "
期待结果“bbcc”
谢谢!

7
yohoowu 在职认证  发表于 2017-7-19 23:13:43
可以試試這個
  1. library(magrittr)
  2. aa='               aa bbcc    ddee     '
  3. unlist(strsplit(aa, split = ' ')) %>% {.[which(.!="")[2]]}
复制代码

8
fortune9 发表于 2017-7-20 01:42:49
tiansiyu_sh 发表于 2017-7-19 20:28
再请问一下,我要取a和d之间的所有,需要怎么写?
输入"               aa bbcc    ddee     "
期待结果 ...
就这个例子而言,可以使用以下代码:

  1. a<-"               aa bbcc    ddee     "
  2. tmp1<-sub("[^a]a+\\s*([^d]+).*","\\1",a)
  3. tmp1<-sub("^\\s+","",tmp1)
  4. res<-sub("\\s+$","",tmp1)
复制代码
你可以输出每一步的结果看每一步的功能是什麽。更多关于R正则表达式,请参考https://stat.ethz.ch/R-manual/R-devel/library/base/html/regex.html
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
aagain + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

9
aagain 发表于 2018-9-10 13:24:10
fortune9 发表于 2017-7-20 01:42
就这个例子而言,可以使用以下代码:

你可以输出每一步的结果看每一步的功能是什麽。更多关于R正则表达 ...
我试了一下,第一句去掉bbcc两边的字母,第二句去掉bbcc前边的空格或者TAB,第三句去掉bbcc后面的空格。
麻烦您能不能简单说明一下这里sub()函数内的正则表达式的语法意义?非常感谢!

10
Luke@ruc 在职认证  发表于 2019-9-25 11:30:57
trimws函数
Description
Remove leading and/or trailing whitespace from character strings.
Usage
trimws(x, which = c("both", "left", "right"), whitespace = "[ \t\r\n]")
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-4 17:18