a$keywordtag <- (1:nrow(a) %in% c(sapply(needle, grep, a$text, fixed = TRUE)))
'needle'或要搜索的单词正在读作:
needle <- c("foo", "x", "y")
但是,我希望针作为csv文件读入。 read.csv似乎没有选择作为字符串读入。 stringsAsFactors = FALSE也不起作用。有什么建议吗?
csv将是:
a <- read.table(text='
"foo"
"x"
"y"', header=FALSE)
答案 0 :(得分:3)
您应该在一个字符串中包含所有文本,并使用换行符
结束每一行(rc <- read.csv(text = paste0(needle, collapse = "\n"), header = FALSE))
V1
1 foo
2 x
3 y
identical(a, rc)
# [1] TRUE
您也可以尝试readLines
read.csv(text = readLines(textConnection(needle)), sep = "\n", header = FALSE)
V1
1 foo
2 x
3 y
在最后一行,如果needle
实际上是一个文件,请将textConnection(needle)
替换为文件名
答案 1 :(得分:1)
如果stringsAsFactors = FALSE并不适合您,您可能会专注于对其进行故障排除。以下代码可以正常工作,以字符串形式读入:
> needle = read.csv("PathToNeedle\\needle.csv", stringsAsFactors=FALSE, header=FALSE)
> needle[1]
V1
1 foo
2 x
3 y
> typeof(needle[1,1])
[1] "character"
如果您正在阅读针的csv文件真的只是:
"foo"
"x"
"y"
那时候非常特别。运行read.csv时得到的数据帧是什么?如果它根本不起作用,则尝试的另一种方法是直接指定数据类型,如下所示:
needle = read.csv("PathToNeedle\\needle.csv", colClasses=c('character'), header=FALSE)