如何从bigr.frame中按索引选择?

时间:2016-05-01 12:38:52

标签: r biginsights bigr

在标准r中,我可以使用以下内容通过索引进行选择:

newdf <- df[1:4,]

但是,如果我在bigr.frame上尝试以上操作,我会得到:

Error: BigR[bigr.frame.[]]: The given filtering condition must be a logical bigr.vector.

[ {bigr}的文档如下:

  

描述

     

过滤数据集的行和项目列

     

用法

     

&#34; [&#34;(x,i,j,...,drop = TRUE)

     

参数

     

x (bigr.frame或bigr.matrix)正在操作的对象。如果x是a   bigr.frame或bigr.csv.matrix,过滤和投影都是   支持的。如果x是bigr.binary.matrix,则只有投影   支撑。

     

i (bigr.vector)表示过滤的逻辑操作   condition(仅适用于bigr.frame和bigr.matrix对象)

     

j (字符或整数)表示列的向量   预计。这些可以是列ID(即整数)或列名   (即字符)

     

drop 在投影单个列的情况下,参数drop确定   结果应该是bigr.vector(drop = TRUE)还是bigr.frame   (降= FALSE)。默认值为drop = TRUE。

     

     

派生的bigr.frame,bigr.matrix或bigr.vector

     

另见

     

bigr.frame bigr.matrix

     

实施例

     

air[air$UniqueCarrier %in% c("UA", "HA"), c(1,2,3,5:9)]

     

air[, c("Origin", "Dest")]

     

air[air$Dest == "SFO", 17]

     

class(air[, 17, drop=FALSE])

     

class(air[, 17, drop=TRUE])

如果我可以通过索引选择,我不清楚。这可能吗?怎么样?

2 个答案:

答案 0 :(得分:1)

第一个参数需要逻辑条件,第二个参数代表列。

您正在寻找的相同功能可以通过head(frame,no#OfRows)来完成

airfile <- system.file("extdata", "airline.zip", package="bigr")
airfile <- unzip(airfile, exdir = tempdir())
airR <- read.csv(airfile, stringsAsFactors=F)
air <- as.bigr.frame(airR)
head(air, 4)

参考:https://www.ibm.com/support/knowledgecenter/SSPT3X_4.0.0/com.ibm.swg.im.infosphere.biginsights.tut.doc/doc/tut_Less_BigR_Stat2.html

答案 1 :(得分:1)

您可以使用as.data.frame函数。

参考:https://www.ibm.com/support/knowledgecenter/SSPT3X_4.0.0/com.ibm.swg.im.infosphere.biginsights.bigr.doc/doc/frame_as.data.frame.html?lang=en

airfile&lt; - system.file(&#34; extdata&#34;,&#34; airline.zip&#34;,package =&#34; bigr&#34;)

airfile&lt; - unzip(airfile,exdir = tempdir())

airR&lt; - read.csv(airfile,stringsAsFactors = F)

air&lt; - as.bigr.frame(airR)

airdf&lt; - as.data.frame(air)

newdf&lt; - airdf [1:4,]

newdf