我有以下数据框架:
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)
但我找不到我想要的东西.谢谢.
我的数据看起来像:
print(dat)
i1 i2 node_id
4 4 8
4 5 8
3 2 9
5 1 8
Run Code Online (Sandbox Code Playgroud)
使用 dplyrfilter或subset(最好是过滤器)我想反向过滤数据,所以我得到这个:
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)
但两者都不起作用。有什么建议么?谢谢。
我的数据看起来像:
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)
谢谢!
添加可复制性:
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因为类别的后续price值price_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)