首页 > 解决方案 > R中的相同列(不同行)操作

问题描述

我有一个大数据库,我正在尝试从现有的列开始创建一个新列,以区分连续单元格中的元素(同一列,不同行):

现有列 新列
一个 AB
公元前
C 光盘
D
... ...
Z Z-NULL

我这样做的方式是将现有列复制到一个虚拟列中,删除第一个元素,添加 NULL 作为最后一个元素并减去现有列和虚拟列......有更好的方法吗?谢谢

exist <-c("A","B","C","D","E")    
db<-data.frame(exist)    
dummy<-exist[-1]    
dummy[length(dummy)+1]<-"NULL"    
new_col<-paste(exist,"-",dummy)    
new_col    
db<-data.frame(exist,new_col)    
db    

标签: r

解决方案


这是否有效:

library(dplyr)
df <- data.frame(existing_column = LETTERS)
df %>% mutate(new_column = paste(existing_column, lead(existing_column, default = 'NULL'), sep = '-'))
   existing_column new_column
1                A        A-B
2                B        B-C
3                C        C-D
4                D        D-E
5                E        E-F
6                F        F-G
7                G        G-H
8                H        H-I
9                I        I-J
10               J        J-K
11               K        K-L
12               L        L-M
13               M        M-N
14               N        N-O
15               O        O-P
16               P        P-Q
17               Q        Q-R
18               R        R-S
19               S        S-T
20               T        T-U
21               U        U-V
22               V        V-W
23               W        W-X
24               X        X-Y
25               Y        Y-Z
26               Z     Z-NULL

推荐阅读