read.table 来自 R 中的 write.table
read.table from write.table in R
我正在尝试 qdap::multigsub
以修复气候事件类型列表中的一些拼写错误、拼写错误的名称、变体表达式和其他一些 "aberrations"(是的,这是 NOAA 的关于风暴的数据集属于可重复研究课程 class 中的作业;尽管作业中既不需要也不期望进行此修复:这是我尽力而为!)。
所以我有名为 "flash flood"、"flash flooding"、"flash floods" 等的事件,我想将它们全部分组到一个名为 "flash flood" 的级别中。所以我首先做的是:
expr <- c("^flash.*floo.*","thun.*")
repl <- c("flash flood","thunderstorm")
每个向量的长度是 51,这是一个 knitr
赋值,所以为了保持它的可读性(边距列 =80),我不得不使用类似
的东西
expr <- c(expr,"new_expr_1","new_expr_2")
repl <- c(repl,"new_repl_1","new_repl_2") # repeated many, many times
这让代码有点乱。当然,我有完整的 expr
和 repl
向量,所以我想将每一对(expr 和 repl)对应的值排成一行,所以代码的 reader会很轻松(这就是 dput
在这里不起作用的原因:它们不会对齐每对值)。
我试过这个:
a <- data.frame(expr=expr,repl=repl)
print(a,rownames=FALSE)
# copying the output, and then
b <- read.table(header=TRUE,text="paste_text_here")
但它失败了(我认为是因为 print
抛出不带引号的输出并且有一些两个单词的 expr 或 repl)。我也试过了
write.table(a,rownames=FALSE)
# copying the output, and then
b <- read.table(header=TRUE,text="paste_text_here")
但它也不起作用(我认为是因为 write.table
在引号之间输出每个项目,而 read.table
发现引号太多而无法处理)。
我想在我的 Rmarkdown 文件中包含如下内容:
exprRepl <- read.table(header=TRUE,text="expr repl
expr_1 repl_1
expr_2 repl_2")
我如何根据现有数据实现这一目标?
数据框前5行的dput
如下:
> dput(a[1:5,])
structure(list(expr = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("^BLIZZARD.*",
"^FLASH.*FLOOD.*", "^HAIL.*", "^HEAVY.*RAIN.*", "^HURRICANE.*"
), class = "factor"), repl = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("BLIZZARD",
"FLASH FLOOD", "HAIL", "HEAVY RAIN", "HURRICANE"), class = "factor")), .Names = c("expr",
"repl"), row.names = c(NA, 5L), class = "data.frame")
如果有任何其他方法可以替换 wrong/variant 名称,我很乐意听取并试一试!
一种解决方案是在粘贴的文本周围使用单引号 '
(只要您的数据中没有 '
,此方法就有效):
d <- structure(list(expr = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("^BLIZZARD.*",
"^FLASH.*FLOOD.*", "^HAIL.*", "^HEAVY.*RAIN.*", "^HURRICANE.*"
), class = "factor"), repl = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("BLIZZARD",
"FLASH FLOOD", "HAIL", "HEAVY RAIN", "HURRICANE"), class = "factor")), .Names = c("expr",
"repl"), row.names = c(NA, 5L), class = "data.frame")
write.table(d, row.names=FALSE)
# copy paste output of write.table in text field below:
read.table(header = TRUE, text='"expr" "repl"
"^HURRICANE.*" "HURRICANE"
"^BLIZZARD.*" "BLIZZARD"
"^FLASH.*FLOOD.*" "FLASH FLOOD"
"^HAIL.*" "HAIL"
"^HEAVY.*RAIN.*" "HEAVY RAIN"')
我正在尝试 qdap::multigsub
以修复气候事件类型列表中的一些拼写错误、拼写错误的名称、变体表达式和其他一些 "aberrations"(是的,这是 NOAA 的关于风暴的数据集属于可重复研究课程 class 中的作业;尽管作业中既不需要也不期望进行此修复:这是我尽力而为!)。
所以我有名为 "flash flood"、"flash flooding"、"flash floods" 等的事件,我想将它们全部分组到一个名为 "flash flood" 的级别中。所以我首先做的是:
expr <- c("^flash.*floo.*","thun.*")
repl <- c("flash flood","thunderstorm")
每个向量的长度是 51,这是一个 knitr
赋值,所以为了保持它的可读性(边距列 =80),我不得不使用类似
expr <- c(expr,"new_expr_1","new_expr_2")
repl <- c(repl,"new_repl_1","new_repl_2") # repeated many, many times
这让代码有点乱。当然,我有完整的 expr
和 repl
向量,所以我想将每一对(expr 和 repl)对应的值排成一行,所以代码的 reader会很轻松(这就是 dput
在这里不起作用的原因:它们不会对齐每对值)。
我试过这个:
a <- data.frame(expr=expr,repl=repl)
print(a,rownames=FALSE)
# copying the output, and then
b <- read.table(header=TRUE,text="paste_text_here")
但它失败了(我认为是因为 print
抛出不带引号的输出并且有一些两个单词的 expr 或 repl)。我也试过了
write.table(a,rownames=FALSE)
# copying the output, and then
b <- read.table(header=TRUE,text="paste_text_here")
但它也不起作用(我认为是因为 write.table
在引号之间输出每个项目,而 read.table
发现引号太多而无法处理)。
我想在我的 Rmarkdown 文件中包含如下内容:
exprRepl <- read.table(header=TRUE,text="expr repl
expr_1 repl_1
expr_2 repl_2")
我如何根据现有数据实现这一目标?
数据框前5行的dput
如下:
> dput(a[1:5,])
structure(list(expr = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("^BLIZZARD.*",
"^FLASH.*FLOOD.*", "^HAIL.*", "^HEAVY.*RAIN.*", "^HURRICANE.*"
), class = "factor"), repl = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("BLIZZARD",
"FLASH FLOOD", "HAIL", "HEAVY RAIN", "HURRICANE"), class = "factor")), .Names = c("expr",
"repl"), row.names = c(NA, 5L), class = "data.frame")
如果有任何其他方法可以替换 wrong/variant 名称,我很乐意听取并试一试!
一种解决方案是在粘贴的文本周围使用单引号 '
(只要您的数据中没有 '
,此方法就有效):
d <- structure(list(expr = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("^BLIZZARD.*",
"^FLASH.*FLOOD.*", "^HAIL.*", "^HEAVY.*RAIN.*", "^HURRICANE.*"
), class = "factor"), repl = structure(c(5L, 1L, 2L, 3L, 4L), .Label = c("BLIZZARD",
"FLASH FLOOD", "HAIL", "HEAVY RAIN", "HURRICANE"), class = "factor")), .Names = c("expr",
"repl"), row.names = c(NA, 5L), class = "data.frame")
write.table(d, row.names=FALSE)
# copy paste output of write.table in text field below:
read.table(header = TRUE, text='"expr" "repl"
"^HURRICANE.*" "HURRICANE"
"^BLIZZARD.*" "BLIZZARD"
"^FLASH.*FLOOD.*" "FLASH FLOOD"
"^HAIL.*" "HAIL"
"^HEAVY.*RAIN.*" "HEAVY RAIN"')