标签: missing-data

为什么没有NA_logical_

来自help("NA"):

还存在支持缺失值的其他原子向量类型的常量NA_integer_,NA_real_,NA_complex_和NA_character_:所有这些都是R语言中的保留字.

我的问题是为什么没有NA_logical_或类似,以及如何处理它.

具体来说,我正在创建几个非常相似data.table的大型s,它们应该是类兼容的,以便以后使用rbind.当其中一个data.tables缺少变量时,我正在创建该列,但将其设置为NA特定类型的所有s.但是,对于合乎逻辑的我不能那样做.

在这种情况下,它可能并不重要(data.table不喜欢将列从一种类型强制转换为另一种类型,但它也不喜欢添加行,所以我必须创建一个新表来保存rbound版本),但我很困惑至于为什么NA_logical_逻辑上应该存在的,不是.

例:

library(data.table)
Y <- data.table( a=NA_character_, b=rep(NA_integer_,5) )
Y[ 3, b:=FALSE ]
Y[ 2, a:="zebra" ]
> Y
       a  b
1:    NA NA
2: zebra NA
3:    NA  0
4:    NA NA
5:    NA NA
> class(Y$b)
[1] "integer"
Run Code Online (Sandbox Code Playgroud)

两个问题:

  1. 为什么不NA_logical_存在,当它的亲戚呢?
  2. 我应该在data.table尽可能避免胁迫的情况下做些什么呢?我假设使用NA_integer_在强制方面买了一点(它会强制我加入0L/1L的逻辑,这不是很糟糕,但并不理想.

r missing-data

13
推荐指数
1
解决办法
1174
查看次数

Python:从现有列创建一个新列

我正在尝试基于两列创建新列.假设我想创建一个新的列z,它应该是y的值,当它没有丢失时,并且当y确实缺失时是x的值.所以在这种情况下,我希望z是[1, 8, 10, 8].

   x   y
0  1 NaN
1  2   8
2  4  10
3  8 NaN
Run Code Online (Sandbox Code Playgroud)

python calculated-columns missing-data pandas

12
推荐指数
3
解决办法
2万
查看次数

填补缺失的级别

我有以下类型的数据帧:

Country <- rep(c("USA", "AUS", "GRC"),2)
Year    <- 2001:2006
Level   <- c("rich","middle","poor",rep(NA,3))
df <- data.frame(Country, Year,Level)

df 
Country Year  Level
1     USA 2001   rich
2     AUS 2002 middle
3     GRC 2003   poor
4     USA 2004   <NA>
5     AUS 2005   <NA>
6     GRC 2006   <NA>
Run Code Online (Sandbox Code Playgroud)

我想用右列中的最后一个用正确的级别标签填充缺失的值.

所以预期的结果应该是这样的:

Country Year  Level
1     USA 2001   rich
2     AUS 2002 middle
3     GRC 2003   poor
4     USA 2004   rich
5     AUS 2005 middle
6     GRC 2006   poor
Run Code Online (Sandbox Code Playgroud)

r missing-data

12
推荐指数
4
解决办法
986
查看次数

在Haskell中有效处理稀疏丢失的数据

我正在尝试使用Haskell进行数据分析.因为我的数据集相当大(数十万甚至数百万的观测值),所以我最好使用未装箱的数据结构来提高效率,比如Data.Vector.Unboxed.

问题是数据包含一些缺失值.我想避免将它们编码为"99"或类似,因为这只是一个丑陋的黑客和潜在的错误来源.从我的Haskell新手的角度来看,我可以想到以下选项:

  1. 解压缩Maybe值的盒装矢量.有点像(请纠正错误):
    data myMaybe a = Nothing | Just {-# UNPACK #-} !a
  2. 一个未装箱的(无法使用的)元组向量,其中一个布尔元素表示缺失:
    newtype instance Data.Vector.Unboxed.Vector (MyDatum a) = MyDatum (Data.Vector.Unboxed.Vector (Bool,a))
    这可能与此问题的OP选择的方法相同(模数IntBool),但唯一的答案似乎没有明确解决丢失的问题值/稀疏性(而是关注如何表示整个数组未装箱,而不是作为未装箱矢量的盒装矢量).
  3. 未装箱的向量元组,一个具有值,另一个具有要注入缺失值的索引,或者非缺失值的运行长度,或某些等效信息.如果缺失很少,这可能比选项2更可取.

我试图保持在矢量表示而不是像这样的东西,因为它是稀疏的缺失值,而不是数据.

任何关于这些选项的相对优点/可行性/现成可用性/可能性能的评论,或者确实指向完全不同的替代品,都是受欢迎的!

编辑:

  • 有人指出,答案可能取决于我打算对数据执行什么样的操作.目前,将每个观察值存储在单个向量中而不是每个变量似乎更方便.由于向量中的条目因此将引用不同的变量,因此不太可能出现"折叠"类操作.
  • 我猜测2.如果合适,将在内部自动存储"有效位"矢量àla3.所以3.可以删除?

unboxing haskell missing-data

11
推荐指数
1
解决办法
482
查看次数

Flexslider 2方向导航指针从下载中丢失

我在哪里可以获得Flexslider2的方向导航指针的图像文件:bg_direction_nav.png?

无法弄清楚为什么我不断收到像'Fl'或'Fi'这样的奇怪文字来取代滑块上的箭头.
检查所有内容,我发现下载包中缺少背景图像和指向它的CSS!

丢失的图像可能是我缺失的链接,我可以调整CSS吗?有人可以帮忙吗?

image missing-data flexslider

11
推荐指数
2
解决办法
2万
查看次数

用滚动平均值或其他插值替换NaN或缺失值

我有一个带有月度数据的熊猫数据框,我想计算12个月的移动平均值.但是,(NaN)缺少1月份每个月的数据,所以我正在使用

pd.rolling_mean(data["variable"]), 12, center=True)
Run Code Online (Sandbox Code Playgroud)

但它只是给了我所有的NaN值.

有一种简单的方法可以忽略NaN值吗?据我所知,在实践中,这将成为11个月的移动平均线.

数据框还有其他具有1月数据的变量,所以我不想抛弃1月份的列并做11个月的移动平均线.

python moving-average missing-data pandas

11
推荐指数
2
解决办法
1万
查看次数

按比例随机将NAs插入数据帧

我有一个完整的数据框架.我希望数据帧中20%的值被NA替换,以模拟随机丢失的数据.

A <- c(1:10)
B <- c(11:20)
C <- c(21:30)
df<- data.frame(A,B,C)
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议一个快速的方法吗?

r missing-data dataframe na

11
推荐指数
3
解决办法
4318
查看次数

data.frame的可视化结构:NA的位置等等

我想用颜色编码在单个图上表示数据框(或矩阵,或data.table等)的结构.我想这对于处理各种类型数据的许多人来说非常有用,可以一目了然地将其可视化.

也许有人已经开发了一个包来做它,但我找不到一个(只是这个).所以这里是我的"愿景"的粗略模型,一种热图,用颜色代码显示:

  • NA地点,
  • 变量类(因子(多少级别?),数字(带颜色渐变,零,异常值......),字符串)
  • 尺寸
  • 等等.....

在此输入图像描述

到目前为止,我刚刚编写了一个函数来绘制NA位置,如下所示:

ggSTR = function(data, alpha=0.5){
  require(ggplot2)
  DF <- data
  if (!is.matrix(data)) DF <- as.matrix(DF)

  to.plot <- cbind.data.frame('y'=rep(1:nrow(DF), each=ncol(DF)), 
                              'x'=as.logical(t(is.na(DF)))*rep(1:ncol(DF), nrow(DF)))
  size <- 20 / log( prod(dim(DF)) )  # size of point depend on size of table
  g <- ggplot(data=to.plot) + aes(x,y) +
        geom_point(size=size, color="red", alpha=alpha) +
        scale_y_reverse() + xlim(1,ncol(DF)) +
        ggtitle("location of NAs in the data frame")

  pc <- round(sum(is.na(DF))/prod(dim(DF))*100, 2) # % NA
  print(paste("percentage of NA data: ", pc))

  return(g)
} …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 missing-data dataframe na

11
推荐指数
1
解决办法
1427
查看次数

基数R中的数据集具有缺失值

基础R中是否有任何包含缺失值的数据集示例?我一直在查看每一个,并且到目前为止还使用google搜索.

library(MASS)
data()
Run Code Online (Sandbox Code Playgroud)

编辑:我知道如何在R中的数据集中添加缺失值,我只想知道是否存在任何此类数据集.

r missing-data

11
推荐指数
2
解决办法
3220
查看次数

熊猫滚动适用于缺少数据

我想对丢失的数据进行滚动计算.

示例代码:( 为了简单起见,我给出了滚动总和的示例,但我想做一些更通用的事情.)

foo = lambda z: z[pandas.notnull(z)].sum() 
x = np.arange(10, dtype="float")    
x[6] = np.NaN
x2 = pandas.Series(x)    
pandas.rolling_apply(x2, 3, foo)
Run Code Online (Sandbox Code Playgroud)

产生:

0   NaN    
1   NaN
2     3    
3     6    
4     9    
5    12    
6   NaN    
7   NaN    
8   NaN    
9    24
Run Code Online (Sandbox Code Playgroud)

我认为在"滚动"期间,计算中忽略了缺少数据的窗口.我希望得到一个结果:

0   NaN    
1   NaN    
2     3    
3     6    
4     9    
5    12    
6     9    
7    12    
8    15    
9    24
Run Code Online (Sandbox Code Playgroud)

python missing-data pandas rolling-computation

10
推荐指数
1
解决办法
6957
查看次数