我正在尝试使用write.table将包含已安装软件包的数据框写入以制表符分隔的文件:
ip <- as.data.frame(installed.packages())
rownames(ip) <- NULL
write.table(ip,file="installed_packages.tsv",quote = F,sep = "\t",row.names = F)不幸的是,这似乎会产生一个文件,其中字段中的逗号有时会导致创建一个新行。然而,这并不一致。引用字段没有区别。有谁有什么想法吗?Edit:添加了一个中断输出的示例,改为使用quote =T:
"Package" "LibPath" "Version" "Priority" "Depends" "Imports" "LinkingTo" "Suggests" "Enhances" "License" "License_is_FOSS" "License_restricts_use" "OS_type" "MD5sum" "NeedsCompilation" "Built"
"abind" "/home/administrator/R/x86_64-pc-linux-gnu-library/3.4" "1.4-5" NA "R (>= 1.5.0)" "methods, utils" NA NA NA "LGPL (>= 2)" NA NA NA NA "no" "3.4.4"
"acepack" "/home/administrator/R/x86_64-pc-linux-gnu-library/3.4" "1.4.1" NA NA NA NA "testthat" NA "MIT + file LICENSE" NA NA NA NA "yes" "3.4.4"
"addTextLabels" "/home/administrator/R/x86_64-pc-linux-gnu-library/3.4" "0.0.0.9000" NA "R (>= 3.4.4)" NA NA NA NA "GPL-3" NA NA NA NA NA "3.4.4"
"backports" "/home/administrator/R/x86_64-pc-linux-gnu-library/3.4" "1.1.2" NA "R (>= 3.0.0)" "utils" NA NA NA "GPL-2" NA NA NA NA "yes" "3.4.4"
"ballgownMod" "/home/administrator/R/x86_64-pc-linux-gnu-library/3.4" "2.5.3" NA "R (>= 3.1.1),
methods" "GenomicRanges (>= 1.17.25),
IRanges (>= 1.99.22),
S4Vectors (>= 0.9.39),
RColorBrewer,
splines,
sva,
limma,
rtracklayer (>= 1.29.25),
Biobase (>= 2.25.0),
GenomeInfoDb" NA "testthat,
knitr" NA "Artistic-2.0" NA NA NA NA NA "3.4.4"
"base64enc" "/home/administrator/R/x86_64-pc-linux-gnu-library/3.4" "0.1-3" NA "R (>= 2.9.0)" NA NA NA "png" "GPL-2 | GPL-3" NA NA NA $
"bdsmatrix" "/home/administrator/R/x86_64-pc-linux-gnu-library/3.4" "1.3-3" NA "methods, R (>= 2.0.0)" NA NA NA NA "LGPL-2" NA NA $
"broom" "/home/administrator/R/x86_64-pc-linux-gnu-library/3.4" "0.5.0" NA "R (>= 3.1)" "backports, dplyr, methods, nlme, purrr, reshape2, stringr,
tibble, tidyr" NA "AER, akima, AUC, bbmle, betareg, biglm, binGroup, boot, brms,
btergm, car, caret, coda, covr, e1071, emmeans, ergm, gam (>=
1.15), gamlss, gamlss.data, gamlss.dist, geepack, ggplot2,
glmnet, gmm, Hmisc, irlba, joineRML, Kendall, knitr, ks,
Lahman, lavaan, lfe, lme4, lmodel2, lmtest, lsmeans, maps,
maptools, MASS, Matrix, mclust, mgcv, muhaz, multcomp, network,
nnet, orcutt (>= 2.2), ordinal, plm, plyr, poLCA, psych,
quantreg, rgeos, rmarkdown, robust, rsample, rstan, rstanarm,
sp, speedglm, statnet.common, survey, survival, testthat,
tseries, xergm, zoo" NA "MIT + file LICENSE" NA NA NA NA "no" "3.4.4"我注意到还为以'gam (>=‘结尾的行)创建了一条新行。我还观察到,该文件在libre-office calc中打开是正确的,字段被正确分隔(但仅当使用quote =T选项时),而不是使用nano、vi或默认的ubuntu文本编辑器(使用quote =T或quote = F)。所以这跟文本编辑器有关系...
发布于 2019-02-26 19:51:21
您可以使用以下命令直接写入数据帧:
write.csv(ip,"installed_packages.csv")在这里,字段中的逗号不会导致创建新行。
发布于 2019-03-07 23:12:30
我认为这应该能起到作用:
a <- installed.packages()
a <- a[, 1]
names(a) <- c() # optional line
write.table(a, "installed.tsv", quote = F, sep = "\t", row.names = F)installed.packages()的结果是一个乱七八糟的矩阵,因此您需要正确地设置它的子集,以获得所有包的向量。
结果为R:
[1] "abind" "Amelia" "ape" "assertthat"
[5] "backports" "base" "base64enc" "BBmisc"
[9] "BelgiumMaps.StatBel" "BH" "bindr" "bindrcpp" 结果为TextEdit (Mac):
abind
Amelia
ape
assertthat
backports
base
base64enc希望它能帮上忙!
https://stackoverflow.com/questions/54884748
复制相似问题