从 ff 对象中删除列
Drop columns from ff objects
我想从 ff
对象中删除一列:
输入文件 file.txt
是这样的制表符分隔的:
Col1 Col2 Col2
x1 x1 x1
x2 x2 x3
x3 x4 xh
然后用ff
包读取:
library(ff)
df <- read.table.ffdf("file.txt", header=T, sep="\t")
我想排除第一列(或在导入文件时跳过它)。使用普通数据框或矩阵,我会简单地应用这样的命令:
df <- df[,-1]
但是,在ff
对象中不起作用。有什么想法吗?
你可以这样做:
假设您有一个这样的测试 ffdf
对象:
#create a test ffdf object
testdf <- as.ffdf(data.frame(a=runif(100), b=runif(100), c=runif(100)))
要删除第一列,即 a 列,您可以这样做:
testdf$a <- NULL
如您所见,第 a
列被删除:
> testdf
ffdf (all open) dim=c(100,2), dimorder=c(1,2) row.names=NULL
ffdf virtual mapping
PhysicalName VirtualVmode PhysicalVmode AsIs VirtualIsMatrix PhysicalIsMatrix PhysicalElementNo PhysicalFirstCol PhysicalLastCol PhysicalIsOpen
b b double double FALSE FALSE FALSE 1 1 1 TRUE
c c double double FALSE FALSE FALSE 2 1 1 TRUE
ffdf data
b c
1 0.10627724 0.93927750
2 0.29170912 0.96716656
3 0.17588141 0.43387388
4 0.69673704 0.39921435
5 0.93715272 0.41446052
6 0.87093269 0.10513608
7 0.87827066 0.72423617
我想从 ff
对象中删除一列:
输入文件 file.txt
是这样的制表符分隔的:
Col1 Col2 Col2
x1 x1 x1
x2 x2 x3
x3 x4 xh
然后用ff
包读取:
library(ff)
df <- read.table.ffdf("file.txt", header=T, sep="\t")
我想排除第一列(或在导入文件时跳过它)。使用普通数据框或矩阵,我会简单地应用这样的命令:
df <- df[,-1]
但是,在ff
对象中不起作用。有什么想法吗?
你可以这样做:
假设您有一个这样的测试 ffdf
对象:
#create a test ffdf object
testdf <- as.ffdf(data.frame(a=runif(100), b=runif(100), c=runif(100)))
要删除第一列,即 a 列,您可以这样做:
testdf$a <- NULL
如您所见,第 a
列被删除:
> testdf
ffdf (all open) dim=c(100,2), dimorder=c(1,2) row.names=NULL
ffdf virtual mapping
PhysicalName VirtualVmode PhysicalVmode AsIs VirtualIsMatrix PhysicalIsMatrix PhysicalElementNo PhysicalFirstCol PhysicalLastCol PhysicalIsOpen
b b double double FALSE FALSE FALSE 1 1 1 TRUE
c c double double FALSE FALSE FALSE 2 1 1 TRUE
ffdf data
b c
1 0.10627724 0.93927750
2 0.29170912 0.96716656
3 0.17588141 0.43387388
4 0.69673704 0.39921435
5 0.93715272 0.41446052
6 0.87093269 0.10513608
7 0.87827066 0.72423617