R中第一个空格后的substr中文字符串
如何提取空格后的汉字?
原始数据如下:
10:36 不願做奴隸的人們 然後看你有沒有在時間內申覆。
10:37 千里之外 真的很無奈
10:37 不願做奴隸的人們 如果五天內你沒注意信心,表示你默認。
我需要的数据是:
不願做奴隸的人們
千里之外
不願做奴隸的人們
我使用的代码是:
filedata <- scan(file = ,what = "",sep = "\n",encoding = "UTF-8")
#定义数据框和变量
data <- data.frame(user_name = c(),date = c(),date = c())
date <- vector(length=length(filedata))
time <- vector(length=length(filedata))
user_name <- vector(length=length(filedata))
text <- vector(length=length(filedata))
#截取用户名、时间和日期
pat1 = '[0-9]{4}/[0-9]{2}/[0-9]{2}' #表示日期的正则表达式
pat2 = '[0-9]+:[0-9]+' #表示时间的正则表达式
for(i in 1: length(filedata)){
dt_pattern1 <- grepl(pat1,filedata[i]) #grepl函数识别每条记录中的日期部分
dt_pattern2 <- grepl(pat2,filedata[i]) #grepl函数识别每条记录中的时间部分
if(dt_pattern1 == TRUE){
date[i] <- substr(filedata[i],1,10)
}
if(dt_pattern2 == TRUE){
time[i] <- substr(filedata[i],1,5)
user_name[i] <- substr(filedata[i], 7, "\\s")
}
}
data <- rbind(data, data.frame(Name = user_name,date = date,time = time))
我需要创建一个 Name 变量,但它有一条警告消息:
通过强制引入的 NA
有谁能帮忙调试一下吗?非常感谢!
How can I extract Chinese characters after a space?
The original data is below:
10:36 不願做奴隸的人們 然後看你有沒有在時間內申覆。
10:37 千里之外 真的很無奈
10:37 不願做奴隸的人們 如果五天內你沒注意信心,表示你默認。
The data that I need is:
不願做奴隸的人們
千里之外
不願做奴隸的人們
The code that I used is:
filedata <- scan(file = ,what = "",sep = "\n",encoding = "UTF-8")
#定义数据框和变量
data <- data.frame(user_name = c(),date = c(),date = c())
date <- vector(length=length(filedata))
time <- vector(length=length(filedata))
user_name <- vector(length=length(filedata))
text <- vector(length=length(filedata))
#截取用户名、时间和日期
pat1 = '[0-9]{4}/[0-9]{2}/[0-9]{2}' #表示日期的正则表达式
pat2 = '[0-9]+:[0-9]+' #表示时间的正则表达式
for(i in 1: length(filedata)){
dt_pattern1 <- grepl(pat1,filedata[i]) #grepl函数识别每条记录中的日期部分
dt_pattern2 <- grepl(pat2,filedata[i]) #grepl函数识别每条记录中的时间部分
if(dt_pattern1 == TRUE){
date[i] <- substr(filedata[i],1,10)
}
if(dt_pattern2 == TRUE){
time[i] <- substr(filedata[i],1,5)
user_name[i] <- substr(filedata[i], 7, "\\s")
}
}
data <- rbind(data, data.frame(Name = user_name,date = date,time = time))
I need to create a Name variable, but it has a warning message:
NAs introduced by coercion
Can anyone help to debug? Thank you very much!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的数据是字符串的矢量,则可以将字符串拆分为任何空白空间,并在每个拆分字符串中提取第二个元素。
If your data is a vector of strings, you can split the strings by any white space, and extract the second element in each split string.
假设您只想要用户名中的第一个单词,您可以在此处使用
sub()
:Assuming you just want the first word from the username, you could use
sub()
here: