簡體   English   中英

將值重新分配給ffdf [R]中的列

[英]Reassigning values to columns in ffdf [R]

我無法在較大的數據集中執行以下操作。 我想知道是否有使用ff或ffdf的內置方法。

示例:使用substr修改ffdf對象中的字符列,並將其重新分配為其他列:

require(ffbase)
> iris
    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
1            5.1         3.5          1.4         0.2     setosa
2            4.9         3.0          1.4         0.2     setosa
3            4.7         3.2          1.3         0.2     setosa
4            4.6         3.1          1.5         0.2     setosa

#Convert to ff object
A <- as.ffdf(iris)

我可以訪問“種類”列

A$species
> A$Species
ff (open) integer length=150 (150) levels: setosa versicolor virginica
      [1]       [2]       [3]       [4]       [5]       [6]       [7]       [8]               [143]     [144] 
setosa    setosa    setosa    setosa    setosa    setosa    setosa    setosa            : virginica virginica 
    [145]     [146]     [147]     [148]     [149]     [150] 
virginica virginica virginica virginica virginica virginica

但是,例如,如果我想對字符串1到3進行子字符串化,則會出現以下錯誤:

> substr(as.character(A$Species),1,3)
Error in substr(as.character(A$Species), 1, 3) : 
  extracting substrings from a non-character object 

有什么准則可以修改ffdf對象中的列?

編輯

我也嘗試了ffdfdply方法。 相當小的數據似乎要花很長時間:

substrff <- function(x){
  x$new <- substr(x$Species,1,8)
  return(x)
}

B <-  ffdfdply(x=A, split = A$Species, FUN = substrff)
require(ffbase)
data(iris, package = "datasets")
x <- as.ffdf(iris)
x$spec <- with(x[c("Species")], substr(Species, 1, 4))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM