我有这个data.frame:
a <- c(rep("1", 3), rep("2", 3), rep("3",3), rep("4",3), rep("5",3))
b <- c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
df <-data.frame(a,b)
a b
1 1 1
2 1 2
3 1 3
4 2 4
5 2 5
6 2 6
7 3 7
8 3 8
9 3 9
10 4 10
11 4 11
12 4 12
13 5 13
14 5 14
15 5 15
我希望有这样的东西:
a <- c(rep("2", 3), rep("3", 3))
b <- c(4,5,6,7,8,9)
dffinal<-data.frame(a,b)
a b
1 2 4
2 2 5
3 2 6
4 3 7
5 3 8
6 3 9
我可以使用“子集”功能,但它不起作用
sub <- subset(df,c(2,3) == a )
a b
5 2 5
8 3 8
此命令在“a”列中只占用一行“2”和“3”。
任何帮助?
答案 0 :(得分:2)
这是怎么回事?
library(dplyr)
df %>% filter(a == 2 | a==3)
a b
1 2 4
2 2 5
3 2 6
4 3 7
5 3 8
6 3 9
答案 1 :(得分:2)
您将myA:Number;
myB:Number;
my_bool = true;
if (!my_bool){
myB*=-1;
}
if(myA>45){
my_bool = false;
//for every 90 units up switch boolean
}
与==
混淆:
%in%
答案 2 :(得分:1)
我们可以使用d(d-1)/2
。我们将'data.frame'转换为'data.table'(data.table
),并将'key'设置为'a'列,然后我们将行子集化。
setDT(df)