我想通过R中的ID为每个重复行分配值
df <- data.frame(ID=c(1,1,1,2,2,2,2,2,3,3,4),
Code = c("A","A","A","B","B","C","C","D","A","A","C"))
> df
ID Code
1 1 A
2 1 A
3 1 A
4 2 B
5 2 B
6 2 C
7 2 C
8 2 D
9 3 A
10 3 A
11 4 C
Run Code Online (Sandbox Code Playgroud)
我希望输出像这样,检查ID重复,然后分配第二个副本_1等等...
ID Code Code_n
1 1 A A
2 1 A A_1
3 1 A A_2
4 2 B B
5 2 B B_1
6 2 C C
7 2 C C_1
8 2 D D …Run Code Online (Sandbox Code Playgroud) I have a data frame, I want to get the matrix with row 1 paste with row 2, row 3 paste with row 4, if the data frame have odd row, leave the last row the same, instead of paste row, paste column 1 and column2, column 3 and column 4, Matrix will be:
data <- data.frame(name = c(1:4), plate=c("A","B","C","D"), value1=c(4:7), value2 = c(100, 200, 300, 400))
data
name plate value1 value2
1 A 4 100
2 B 5 200 …Run Code Online (Sandbox Code Playgroud) 我有数据集
ID <- c(1,1,2,2,2,2,3,3,3,3,3,4,4,4)
Eval <- c("A","A","B","B","A","A","A","A","B","B","A","A","A","B")
med <- c("c","d","k","k","h","h","c","d","h","h","h","c","h","k")
df <- data.frame(ID,Eval,med)
> df
ID Eval med
1 1 A c
2 1 A d
3 2 B k
4 2 B k
5 2 A h
6 2 A h
7 3 A c
8 3 A d
9 3 B h
10 3 B h
11 3 A h
12 4 A c
13 4 A h
14 4 B k
Run Code Online (Sandbox Code Playgroud)
我尝试创建变量,x并按yID和Eval分组.对于每个ID,if …
我有数据框,我想用条件创建一个新变量"Begin1":如果变量"Begin"的第二行小于第一行的变量"End",则设置值"End"替换"Begin"由于按ID重叠
ID <- c(rep(1,3), rep(3, 5), rep(4,4))
Begin <- c(0,2.5,5, 7,8,7,25,25,10,15,17,20)
End <- c(1.5,3.5,6, 7.5,8,11,29,35, 12,19,21,28)
df <- data.frame(ID, Begin, End)
df
ID Begin End
1 1 0.0 1.5
2 1 2.5 3.5
3 1 5.0 6.0
4 3 7.0 7.5
5 3 8.0 8.0
6 3 7.0 11.0**
7 3 25.0 29.0
8 3 25.0 35.0**
9 4 10.0 12.0
10 4 15.0 19.0
11 4 17.0 21.0**
12 4 20.0 28.0**
Run Code Online (Sandbox Code Playgroud)
如果你能看到,行加粗,排(6,8,11,12).从ID为3的第6行开始,您会看到"Begin"= 7.0,它比前一行的"End"小,现在我们设置"Begin1"= 8.0.对于ID为3的行8,"Begin"= 25,它比之前的"End"= 29小,现在我们设置"Begin1"= 29,依此类推.这是输出
ID …Run Code Online (Sandbox Code Playgroud) 我有5个小数点的数字向量,我累了乘以7,结果给我整数,我不知道为什么小数消失了.你知道发生了什么吗?
这是数据
> df
ID Begin End Int
1 34 30-Dec-05 15-Jan-06 6.142857
2 66 3-Apr-06 7-Aug-06 13.000000
3 66 28-Feb-06 3-Apr-06 17.857143
4 104 31-Jan-06 28-Feb-06 6.000000
5 104 28-Feb-06 23-May-06 10.000000
6 104 24-May-06 7-Sep-06 22.142857
7 182 9-May-06 10-Jul-06 -1.571429
8 189 10-Apr-06 11-Apr-06 15.285714
9 189 12-Apr-06 12-Apr-06 15.571429
10 189 13-Apr-06 15-Apr-06 15.714286
11 189 13-Aug-06 13-Sep-06 23.428571
12 189 6-Jun-06 6-Jun-06 33.142857
13 193 17-Mar-06 24-Mar-06 2.428571
14 193 27-Jun-06 28-Jun-06 17.000000
15 193 …Run Code Online (Sandbox Code Playgroud) 我想检查数据的重叠,这里是数据
ID <- c(rep(1,3), rep(3, 5), rep(4,4),rep(5,5))
Begin <- c(0,2.5,3,7,8,7,25,25,10,15,17,20,1,NA,10,11,13)
End <- c(1.5,3.5,6,12,8,11,29,35, 12,19,NA,28,5,20,30,20,25)
df <- data.frame(ID, Begin, End)
df
ID Begin End
1 1 0.0 1.5
2 1 2.5 3.5
3 1 3.0 6.0*
4 3 7.0 12.0
5 3 8.0 8.0*
6 3 7.0 11.0*
7 3 25.0 29.0
8 3 25.0 35.0*
9 4 10.0 12.0
10 4 15.0 19.0
11 4 17.0 NA*
12 4 20.0 28.0
13 5 1.0 5.0
14 5 NA 20.0
15 …Run Code Online (Sandbox Code Playgroud) 这是前一个问题的后续问题,但我遇到了一个问题,答案是由于NA:
require(data.table)
ID <- c(rep(1,4), rep(3, 5), rep(4,4),rep(5,5))
Begin <- c(0,2.5,NA,3,7,8,7,25,25,10,15,0,0,1,NA,10,11,13)
End <- c(1.5,3.5,NA,6,12,8,11,29,35, 12,19,NA,28,5,20,30,20,25)
df <- data.table(ID, Begin, End)
df[, Begin_New := {
high_so_far = shift(cummax(End), fill=Begin[1L])
w = which(Begin < high_so_far)
Begin[w] = high_so_far[w]
Begin
}, by=ID]
ID Begin End Begin_New
1: 1 0.0 1.5 0.0
2: 1 2.5 3.5 2.5
3: 1 NA NA NA
4: 1 3.0 6.0 3.0* # <~~ it supposed 3.5
5: 3 7.0 12.0 7.0
6: …Run Code Online (Sandbox Code Playgroud) 我喜欢创建一个带有函数paste0的向量,如果值大于0,则将值粘贴到每个rownames中.
ts <- data.frame(t2)
ts
1 1
2 1
3 0
4 0
5 0
6 2
footer <- c(paste0("There is ",ts$t2[1]," subject missing in group ",rownames(ts)[1]),
paste0("There is ",ts$t2[2]," subject missing in group ",rownames(ts)[2]),
paste0("There are ",ts$t2[6]," subjects missing in group ",rownames(ts)[6]))
footer
[1] "There is 1 subject missing in group 1" "There is 1 subject missing in group 2"
[3] "There are 2 subjects missing in group 6"
Run Code Online (Sandbox Code Playgroud)
谢谢你的进步.
我有一个数据框,我想创建一个变量z,计算"y变量"的副本,如果y有1,1 set z = 2,2,如果y有3,3,3,则设置z = 3,3 ,3.
x = c("a","b","c","d","e","a","b","c","d","e","a","b","c")
y = c(1,1,2,2,2,3,3,4,4,4,5,5,5)
data <- data.frame(x,y)
data
x y z
1 a 1 2
2 b 1 2
3 c 2 3
4 d 2 3
5 e 2 3
6 a 3 2
7 b 3 2
8 c 4 3
9 d 4 3
10 e 4 3
11 a 5 3
12 b 5 3
13 c 5 3
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我有数据框,我想通过每个 ID 和组的总和创建一个新变量,如果我求和正常,数据维度减少,我的情况我需要保留并重复每一行。
ID <- c(rep(1,3), rep(3, 5), rep(4,4))
Group <-c(1,1,2,1,1,1,2,2,1,1,1,2)
x <- c(1:12)
y<- c(12:23)
df <- data.frame(ID,Group,x,y)
ID Group x y
1 1 1 1 12
2 1 1 2 13
3 1 2 3 14
4 3 1 4 15
5 3 1 5 16
6 3 1 6 17
7 3 2 7 18
8 3 2 8 19
9 4 1 9 20
10 4 1 10 21
11 4 1 11 22
12 4 …Run Code Online (Sandbox Code Playgroud) r ×10
data.table ×3
dataframe ×2
duplicates ×2
paste ×2
shift ×2
aggregate ×1
apply ×1
count ×1
if-statement ×1
lag ×1
matrix ×1