r - 打印以逗号分隔,删除引号并在 R 中添加特殊引号
问题描述
我有一个表,其中包含 TSV 格式的数据帧的名称,如下所示:
df1 <- t(c('18-1829.tsv', '19-0193.tsv', '14-381.tsv', '19-940.tsv'))
df1
V1 V2 V3 V4
1 18-1829.tsv 19-0193.tsv 14-381.tsv 19-940.tsv
这些 .tsv 文件我在 R 环境中有它们。我想做的是rbind
他们,关于这个功能,里面应该是这样的:
df2 <- rbind(`18-1829.tsv`, `19-0193.tsv`, `14-381.tsv`, `19-940.tsv`)
请注意,我需要特殊引号``
才能使其起作用。
所以我想要做的是打印输出如下所示的文本:
dfX <- `18-1829.tsv`, `19-0193.tsv`, `14-381.tsv`, `19-940.tsv`
所以我可以简单地做rbind(dfX)
并绑定它们。
到目前为止,我尝试过:
> paste(as.character(noquote(df1)), collapse="`, `")
[1] "18-1829.tsv`, `19-0193.tsv`, `14-381.tsv`, `19-940.tsv"
但这是相当错误的,因为它``
在开头和结尾都没有输出,而且在[1]
开头的时候会弄乱里面的东西rbind
。此外,""
开头和结尾的引号也可能会搞砸。
也许有更好的方法来做到这一点?
解决方案
作为df1
一个矩阵,我们可以使用mget
它。无需插入特殊引号。
do.call(rbind, mget(df1))
我们也可以使用bind_rows
fromdplyr
dplyr::bind_rows(mget(df1))
或者data.table
rbindlist
data.table::rbindlist(mget(df1))
使用可重现的示例
`18-1829.tsv` <- head(mtcars)
`19-0193.tsv` <- head(mtcars)
df1 <- t(c('18-1829.tsv', '19-0193.tsv'))
dplyr::bind_rows(mget(df1))
# mpg cyl disp hp drat wt qsec vs am gear carb
#1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#6 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
#7 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#8 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#9 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#10 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#11 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#12 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
推荐阅读
- python - 有什么方法可以定义带有前导可选参数的 Python 函数?
- json - Scala:使用 playframework 将 Json 的一部分映射到 Object
- reactjs - ReactJS - 使用延迟加载自动创建块
- laravel - 错误的迁移称为
- python - 将列中的字符串转换为python中的Nan
- angular - 在 AnyChart 中单击行后如何更改变量的文本?
- python - 将 PageRank 应用于主题层次树(使用从 DBpedia 提取的 SPARQL 查询)
- java - 无法从 Payara 5.2020.4 上的 JSP 页面中访问 JNDI 数据源
- python - Python:py 和 pip 命令
- r - 在由字符串和数字组成的小标题中添加一行