小编cos*_*k08的帖子

仅返回R中包含NA的列

我有以下数据框架:

i3<-c(1,1,1,1,2,2)
i2<-c(NA,1,1,1,2,2)
i1<-c(1,NA,2,4,5,3)
newdat1<-data.frame(i3,i2,i1)
print(newdat1)
  i3 i2 i1
1  1 NA  1
2  1  1 NA
3  1  1  2
4  1  1  4
5  2  2  5
6  2  2  3
Run Code Online (Sandbox Code Playgroud)

我意识到这个解决方案非常简单,但我试图返回任何NA的所有列,以便最终结果如下:

  i2 i1
1 NA  1
2  1 NA
3  1  2
4  1  4
5  2  5
6  2  3
Run Code Online (Sandbox Code Playgroud)

我发现以下代码反其道而行之:

newdat1<-newdat1[, sapply(newdat1, Negate(anyNA)), drop = FALSE]
Run Code Online (Sandbox Code Playgroud)

但我找不到我想要的东西.谢谢.

r dataframe

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

反向过滤器/子集数据帧

我的数据看起来像:

print(dat)
i1  i2  node_id
 4   4        8
 4   5        8
 3   2        9
 5   1        8
Run Code Online (Sandbox Code Playgroud)

使用 dplyrfiltersubset(最好是过滤器)我想反向过滤数据,所以我得到这个:

 print(dat)
 i1  i2  node_id
 4   4        8
 4   5        8
 5   1        8
Run Code Online (Sandbox Code Playgroud)

我说反向过滤器是因为而不是过滤或子设置,例如:

dat<-filter(dat,node_id==8)
dat<-subset(dat,node_id==8)
Run Code Online (Sandbox Code Playgroud)

我想通过告诉 RI 想要保留除我尝试过的 node_id==9 之外的所有内容来做到这一点:

dat<-filter(dat,-node_id==9)
dat<-subset(dat,-node_id==9)
Run Code Online (Sandbox Code Playgroud)

但两者都不起作用。有什么建议么?谢谢。

r subset filter dataframe dplyr

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

多列的频率和百分比计数

我的数据看起来像:

print(dat)
i1  i2  i3  i4
 0   1   1   0
NA   1   1   1
 0   0   0   1
 1   1   1   1
Run Code Online (Sandbox Code Playgroud)

我的目标是通过函数的一些组合理想地获得三条信息sapply:1的数量,0的数量,以及1的非NA的百分比.因此,例如,理想的结果将是这样的:

function(dat)
0  1   percentage
5  10      66.7
Run Code Online (Sandbox Code Playgroud)

谢谢!

r function dataframe

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

R :根据按列更改分组中的前后值来查找最小值

添加可复制性:

  data.frame(
product=c(rep("x",2),rep("y",3)),
price_category_from=c(10,20,10,20,30),
price=c(30,31,31,30,27)
Run Code Online (Sandbox Code Playgroud)

)

如下所示,我有一个表格,我想对其进行分组product并更改price_category_from列的值以找到最小值price

product     price_category_from     price
  x                10                30
  x                20                31
  y                10                31
  y                20                30
  y                30                27
Run Code Online (Sandbox Code Playgroud)

如下所示,结果表应包含price.new用于更改列中值的最小price_category_from列。例如,price.new在产品的两行中x都是30因为类别的后续priceprice_category_from更大。而对于产品y,每个后续price_category_from类别的最小值都会发生变化,因为下一个price值较小。

中的值price_category_from是按递增顺序排列的间隔。

product     price_category_from     price    price.new
  x                10                30        30
  x                20                31        30  **
  y                10                31        31
  y                20                30        30
  y                30                27        27 …
Run Code Online (Sandbox Code Playgroud)

r reshape2 dplyr data.table

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

标签 统计

r ×4

dataframe ×3

dplyr ×2

data.table ×1

filter ×1

function ×1

reshape2 ×1

subset ×1