gpt4 book ai didi

r - 错误 : "argument is not an atomic vector; coercing[1] FALSE"

转载 作者:行者123 更新时间:2023-12-04 15:32:11 26 4
gpt4 key购买 nike

我是 R 的新手并且遇到了问题 (1) 将以前的堆栈溢出答案概括为我的情况,以及 (2) 理解 R 文档。所以我转向这个社区,希望有人能带我过去。

我有这个代码,其中 data1是一个文本文件:

data1 <- read.delim(file.choose())
pattern <- c("An Error Has Occurred!")
str_detect(data1, regex(pattern, ignore_case = FALSE))

我看到的错误消息是:
argument is not an atomic vector; coercing[1] FALSE

当我使用 is.vector() 确认数据类型时,看起来应该没问题:
is.vector(pattern)
#this returns [1] TRUE as the output

我用于 str_detect 函数的引用是 https://www.rdocumentation.org/packages/stringr/versions/1.4.0/topics/str_detect .

编辑 1:这是 data1 的输出- 我正在尝试将第 4 行与最后一行“发生错误!”相匹配:
Silk.Road.Forums
<fctr>
*
Welcome, Guest. Please login or register.
[ ] [ ] [Forever] [Login]
Login with username, password and session length
[ ] [Search]
â\200¢ Home
â\200¢ Search
â\200¢ Login
â\200¢ Register
â\200¢ Silk Road Forums
An Error Has Occurred!
The user whose profile you are trying to view does not exist.
Back
â\200¢ SMF | SMF © 2013, Simple Machines

编辑 2:经过一些初步测试后,问题似乎在于我如何打开 data1 ,不一定 str_detect() .

当我刚刚创建一个向量时,它可以工作:
dataVector <- c("An Error Has Occurred!", "another one")
pattern <- c("An Error Has Occurred!")
str_detect(dataVector, pattern) # returns [1] TRUE FALSE

但是当我尝试在文件上使用该函数时,它没有
data1 <- read.delim(file.choose())
pattern <- c("An Error Has Occurred!")
str_detect(data1, pattern) # returns the atomic vector error message`

问题:所以我确信问题在于 (1) 我使用了错误的函数或 (2) 我加载了错误的文件类型。我以前从未在 R 中使用过文本文件,所以我有点迷茫。

这就是我所拥有的,并提前感谢任何愿意提供帮助的人!

最佳答案

我认为这里发生的事情是 read.delim正在将文本文件作为数据框而不是矢量读取,这就是 str_detect需要。

为了快速解决,您可以尝试。

str_detect(data1[,1], "An Error Has Occurred!")

这是有效的,因为现在 data1 是一个 1 列的数据框。 data2[,1]返回该数据框第一(也是唯一)列的所有行,并将其作为向量返回。

然而!这里的问题是您正在使用 read.delim这是用于分隔文本文件(即像具有分隔符如“,”的 csv 文件),而您的数据不是。最好使用函数 readlines这将返回一个字符向量。
# open a connection to your file
con <- file('path/to/file.txt',open="r")
# read file contents
data1 <- readLines(con)
# close the connection
close(con)

然后 str_detect应该管用。
str_detect(data1, "An Error Has Occurred!")

关于r - 错误 : "argument is not an atomic vector; coercing[1] FALSE",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61036981/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com