我有一个包含 3 列的数据集“df”。
>> Original Data
Student Id Name Marks
0 id_1 John 112
1 id_2 Rafs 181
2 id_2 Rafs 182
3 id_2 Rafs 183
4 id_3 Juan 222
5 id_3 Juan 312
6 id_3 Roller 21
Run Code Online (Sandbox Code Playgroud)
试图保持列 'Student_Id' 和 'Name' 不变,但将 'Marks' 转换为多列。这样每个唯一的“Student_Id”和“Name”都将有一行所有可能的标记。此外,我们不需要手动创建列,但应根据值动态创建列。
>> Expected Output
Student Id Name Marks1 Marks2 Marks3
0 id_1 John 112 <NA> <NA>
1 id_2 Rafs 181 182 183
2 id_3 Juan 222 312 <NA>
3 id_3 Roller 21 <NA> <NA> …Run Code Online (Sandbox Code Playgroud) 我想将data.table和vector绑定在一起,以使矢量内容成为data.table的新列(零值)。
DT <- data.table(x=c("A", "B", "C", "D", "E", "F"), y = rnorm(6))
DT2 <- c("paper11grid1", "paper12grid1", "paper13grid1")
Run Code Online (Sandbox Code Playgroud)
我想将DT2的内容更新为DT的新列名
x y paper11grid1 paper12grid1 paper13grid1
A 0.9643131 0 0 0
B -0.8856350 0 0 0
C -0.1489705 0 0 0
D 2.0675105 0 0 0
E -1.2965938 0 0 0
F -0.8468514 0 0 0
Run Code Online (Sandbox Code Playgroud)
直接进行绑定只会将DT2添加为一个列
cbind(DT, DT2)
Run Code Online (Sandbox Code Playgroud) 我有两个向量:
a <- c(1,2,3)
b <- c(11,12,13)
Run Code Online (Sandbox Code Playgroud)
我想创建列名称(3 * 3 = 9)的组合,以便它们使用来自两个名称的值:
paper1grid11
paper1grid12
paper1grid13
paper2grid11
paper2grid12
paper2grid13
paper3grid11
paper3grid12
paper3grid13
Run Code Online (Sandbox Code Playgroud)
我试过使用paste0命令,但没有组合。而是只创建3个列名。
paste0("paper", a,"grid", b)
Run Code Online (Sandbox Code Playgroud)
我不想使用for循环