R 数字数据的读入
我在文本文件中输入带有括号的数字数据。 记录一个看起来像R 数字数据的读入,r,R,我在文本文件中输入带有括号的数字数据。 记录一个看起来像 jelly(34) 我被告知“(”需要作为\(”转义) 我想这意味着“)“需要作为\”)转义) 我真的不知道这是什么意思。 如何使用escape,是否需要特定的读入函数来执行此操作 我希望输出像这样 jelly 34 其中,jelly是字符串,34是数字 在处理括号之前,我需要处理长度不等的记录的输入。下面给出了输入姓名(文本)和年龄(数字)的代码 R代码: dirdata<-"c:\data" d=read.table(paste
jelly(34)
我被告知“(”需要作为\(”转义)
我想这意味着“)“需要作为\”)转义)
我真的不知道这是什么意思。
如何使用escape,是否需要特定的读入函数来执行此操作
我希望输出像这样
jelly 34
其中,jelly是字符串,34是数字
在处理括号之前,我需要处理长度不等的记录的输入。下面给出了输入姓名(文本)和年龄(数字)的代码
R代码:
dirdata<-"c:\data"
d=read.table(paste0(dirdata,"top.txt"),
header = FALSE, sep=" ",
strip.white = TRUE,
stringsAsFactors = FALSE
#colClasses= ("character",numeric")
#col.names= (V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14)
)
# data top.txt
#Jack 1 Ben 25 Hunter 49 Di 73 Miguel 97 Mike 2 Zach 26
#Tammy 50
#Jules 74 Jake 98
# ... unequal record lengths
#Error in scan(file = file, what = what, sep = sep, quote = quote,
dec = dec,
#line 2 did not have 14 elements
dirdata如果我理解正确,您正在尝试将jelly(34)
转换为两个对象,一个字符jelly
和一个数字34
(
和)
是特殊字符,因此要选择它们,必须使用\
。您还可以使用库rebus
查找OPEN\u PAREN
和CLOSE\u PAREN
在这里,我编写了一个小代码来获取您的请求。这是一个解决方案,除其他外,我毫不怀疑有其他方法可以实现这一结果
因此,使用您的示例并假设所有数值向量都是用括号编写的,它应该是:
words=c(“杰克(1)”、“本(25)”、“亨特(49)”、“迪(73)”、“米格尔(97)”、“迈克(2)”、“扎克(26)”)
word=data.frame(t(sapply(字,函数(x){rbind(unlist(strsplit(x,”)))))})
用于(i/1:长度(字))
{
if(grepl(“\\(”,word[,i])==TRUE)
{
单词[,i]=gsub(“\\(“,”,单词[,i])
单词[,i]=gsub(“\\),”,单词[,i])
字[,i]=作为数字(字[,i])
}
else{word[,i]=as.character(word[,i]))
}
因此,在最后,您将得到以下数据帧,其中包含一个字符向量和一个数字向量
>str(word)
“data.frame”:2个变量中的7个对象:
$X1:chr“杰克”“本”“亨特”“迪”。。。
$X2:num125497397226
这就是你想要的吗?如果你只是想去掉括号,你也可以在gsub中使用fixed=TRUE
选项
library(dplyr)
word <- "jelly (34)"
word %>% gsub("(", "", ., fixed = TRUE) %>% gsub(")", "", ., fixed = TRUE)
库(dplyr)
单词%gsub((“,”,,,fixed=TRUE)%>%gsub(“)”,,,,,fixed=TRUE)
问题还不清楚。你能说明预期的输出和输入数据是转义字符的意思吗。但正如@akrun所说,请提供更多的上下文。例如,谁或什么人告诉你转义括号?相关:是的。请注意我在这篇文章中所做的更改,特别是转义字符的更多细节和输入数据。我需要将你的解决方案应用于一个词向量。我对所有这些函数都不熟悉,因此需要进行一些研究。请参阅帖子。谢谢。嗨,玛丽,我更新了我的答案,包括对词向量的操作(带括号)。让我知道这是否是你想要的。洪,我将以名称(数字)的形式阅读数据.例如Jake(58)。现在为了简化,我需要学习如何读取可变长度的记录。我暂时删除了括号。