我的输入是一个文本文件:
Data
[2.3, -1.2, 3.5]
[0.1, -0.2, 4.9]
我读取txt文件的R函数是:
inputR = read.table("Data.txt", header=TRUE, sep="\t", dec=".")
我在R中的打印是:
> print(inputR)
Data
[1] [2.3, -1.2, 3.5]
[2] [0.1, -0.2, 4.9]
我的目标是:
V1 V2 V3
[1] 2.3 -1.2 3.5
[2] 0.1 -0.2 4.9
当我按照你的建议尝试dput()时,结果如下:
structure(c(4L,...), .Label= c("[2.3, -1.2, 3.5]", ...), class= "factor")
我现在改变了我的文本文件的输入,以便我克服这个问题。谢谢你们帮助我。尽管如此,如果有人找到了一个很好的解决方案,那么将来其他人也会感兴趣。
答案 0 :(得分:1)
您的问题缺少"为什么"部分;可能有更好的方式来完全考虑你的问题。特别是,你使用了单词" cell"让我觉得你像电子表格一样思考,而R不是。
如果您只对输出感兴趣,可以将矢量设为一列矩阵;这将在打印时垂直排列。我经常在需要比较值时这样做,因为它们比垂直比较更容易垂直比较。此方法也会对齐小数位。
V1 <- 1:3
matrix(V1, ncol=1)
## [,1]
## [1,] 1
## [2,] 2
## [3,] 3
答案 1 :(得分:0)
你现在得到的可能是这样的:
V1 <- c(2.3, -1.2, 3.5)
print(V1)
[1] 2.3 -1.2 3.5
如果您迫切希望它们分开,可以使用for循环或lapply
:
invisible(lapply(V1, print))
[1] 2.3
[1] -1.2
[1] 3.5
您甚至可以自己创作:
print2 <- function(p){
invisible(lapply(p, print))
}
print2(V1)
[1] 2.3
[1] -1.2
[1] 3.5
如果左边的数字非常重要:
print3 <- function(p){
for(i in seq_along(p))
cat(sprintf("[%s] %s\n", i, p[i]))
}
print3(V1)
[1] 2.3
[2] -1.2
[3] 3.5