具有多个对象的矢量将在控制台上打印,名称采用垂直表格格式。
方法-1:以水平布局将矢量Print.dataframe。但是,标签显示为列名称。
方法-2:Write.table。但文本包裹在行名称中。
请建议是否有其他功能可用。请查看下面的最小示例,以便更好地理解。
sv<-(1:4)
names(sv)<-c("Al", "BetaRay", "Gamma", "Zabracadabra")
sv
Al BetaRay Gamma Zabracadabra
1 2 3 4
print(data.frame(sv))
sv
Al 1
BetaRay 2
Gamma 3
Zabracadabra 4
write.table(data.frame(sv), col.names = FALSE, quote = FALSE)
Al 1
BetaRay 2
Gamma 3
Zabracadabra 4
所需的输出是:
Al 1
BetaRay 2
Gamma 3
Zabracadabra 4
答案 0 :(得分:2)
一个选项是使用write.table。但是,如果需要对齐列,则需要调整宽度。
library(gdata)
df <- data.frame(c("Al", "BetaRay", "Gamma", "Zabracadabra"),c(1:4))
write.fwf(df,quote=F,colnames = F)
Al 1
BetaRay 2
Gamma 3
Zabracadabra 4
答案 1 :(得分:0)
您并不完全清楚自己想要达到的目标。从你想要的输出,我知道你正在尝试干净地写表到控制台。您使用基础R的方法是正确的。
数据
sv<-(1:4)
names(sv)<-c("Al", "BetaRay", "Gamma", "Zabracadabra")
# Method-1: Print.dataframe the vector in a horizontal layout.
# However, the label appears as a column name.
sv<-unname(data.frame(sv)) # as suggested by @DirtySockSniffer
dim(sv)
[1] 4 1
注意:您有一个包含4行的1列数据。你看到的是rownames, 当你说&#34;我希望你没有被这个弄错。标签显示为列名。&#34;
print(sv) # is exactly doing what you need
Al 1
BetaRay 2
Gamma 3
Zabracadabra 4
# Method-2: Write.table. But the text wrapped to the row names.
注意:文本没有包装成行名,只是出现了。 write.table的主要目的是将数据帧写入文件。我不认为建议将数据打印到控制台。但是,当您指定分隔符时,它可以显示一些区别。但是,这不是一种有效的方式。
write.table(sv, col.names = FALSE, quote = FALSE, sep = "\t") # use a tab separator
Al 1
BetaRay 2
Gamma 3
Zabracadabra 4
# Other options require you to use some package to print cleanly to console.
# install.packages("knitr")
require(knitr)
kable(sv)
| | sv|
|:------------|--:|
|Al | 1|
|BetaRay | 2|
|Gamma | 3|
|Zabracadabra | 4|
数据表方式(如果您希望对数据帧进行任何进一步处理,我认为更有效)但是,数据表不支持行名称,默认情况下会生成数字行名称。如果您的数据框具有行名,则必须创建rn
列。但是,它干净利落地写入控制台。
require(data.table)
data.table(sv,keep.rownames = T)
rn sv
1: Al 1
2: BetaRay 2
3: Gamma 3
4: Zabracadabra 4