数据帧,输入和输出文件
问题描述:
我在寻找一种简单的方式来读/写一个基本的数据帧:数据帧,输入和输出文件
symbMat <- matrix("AJY", "6A", "6J", 0, 0, ncol=5)
colnames(symbMat) <- c("Symb1","Symb2","Symb3","lastVstamp","completedRows")
testFrame<-List(symbMat,matrix(c("date1","date2")))
所以testFrame现在看起来像
[[1]]
Symb1 Symb2 Symb3 lastVstamp completedRows
[1,] "AJY" "6A" "6J" "0" "0"
[[2]]
[,1]
[1,] "date1"
[2,] "date2"
所以问题是 函数read.table(“多表”,报头= TRUE) 给我,把它作为所有2x6的一个矩阵(用搞砸名称最后一列)的文件
"Symb1" "Symb2" "Symb3" "lastVstamp" "completedRows" "structure.c..date1....date2.....Dim...c.2L..1L.."
"1" "AJY" "6A" "6J" "0" "0" "date1"
"2" "AJY" "6A" "6J" "0" "0" "date2"
而
install.packages("MASS")
library(MASS)
write.matrix(testFrame,file="MultiTable")
只是让文件
AJY,6A,6J,0,0
DATE1,DATE2
这显然是相当多的信息丢失。此外,没有一个read.matrix(),所以我不知道该函数的重点是什么
任何想法?
答
首先,testFrame
不是data.frame
。 A data.frame
是R中非常具体的对象类型。但是,这不影响能够保存和重新加载数据。有两套用于保存和加载数据的功能:save()
/load()
和dump()
/source()
。第一种是创建一种二进制格式,第二种是文本格式(虽然结构与屏幕上打印的不同)。
固定在你的榜样错别字:
symbMat <- matrix(c("AJY", "6A", "6J", 0, 0), ncol=5)
colnames(symbMat) <- c("Symb1","Symb2","Symb3","lastVstamp","completedRows")
testFrame<-list(symbMat,matrix(c("date1","date2")))
testFrame
是
> testFrame
[[1]]
Symb1 Symb2 Symb3 lastVstamp completedRows
[1,] "AJY" "6A" "6J" "0" "0"
[[2]]
[,1]
[1,] "date1"
[2,] "date2"
随着save()
和load()
:
save(testFrame, file="temp.RData")
load(file="temp.RData")
随着dump()
和source()
:
dump("testFrame", file="temp.R")
source(file="temp.R")
请注意引用dump()
的第一个参数。 temp.R
然后
testFrame <-
list(structure(c("AJY", "6A", "6J", "0", "0"), .Dim = c(1L, 5L
), .Dimnames = list(NULL, c("Symb1", "Symb2", "Symb3", "lastVstamp",
"completedRows"))), structure(c("date1", "date2"), .Dim = c(2L,
1L)))
其表示对象的方式作为dput()
相同一样。
谢谢,save()和load()对我来说足够了。 – hedgedandlevered 2013-04-24 19:11:55