我有一个数据帧x = [[int(i)] for i in raw_input().split()]
print (x.sort())
,其中包含三列df
,ref
和driver
。
tour
我想对新列 ref driver tour
02062018-1130SGA->BRT-Buttes Chaumont Mark NA
02162018-1230BRT-A2Pas Courbevoie Marceau John NA
02067018-1300SGA->BRT-Brune 2/2 Sam NA
020718-0800-CHILLY-CHARENTON Claire 678
020718-0800-CHILLY-BATIGNOLLES NA NA
进行突变,如果ID
为NA,则它会串联tour
和ref
的前13个字母。如果tour不是NA,它将在driver
中返回相同的值。因此结果应如下所示:
tour
请注意,如果 ref driver tour ID
02062018-1130SGA->BRT-Buttes Chaumont Mark NA 02062018-1130Mark
02162018-1230BRT-A2Pas Courbevoie Marceau John NA 02162018-1230John
02067018-1300SGA->BRT-Brune 2/2 Sam NA 02067018-1300Sam
020718-0800-CHILLY-CHARENTON Claire 678 678
020718-0800-CHILLY-BATIGNOLLES NA NA 020718-0800-C
列也是driver
,我不想将NA
用作字符,而是只想返回{{1 }}。
我的想法是使用NA
函数,但只是不知道如何解决前13个字母并串联到ref
的问题。
ifelse
任何帮助将不胜感激。谢谢!
答案 0 :(得分:1)
您要与substr
一起使用paste0
。
df1$ID <- ifelse(is.na(df1$tour),
paste0(substr(df1$ref, 1, 13), ifelse(is.na(df1$driver), "", df1$driver)),
df1$tour)
"02062018-1130Mark" "02162018-1230John" "02067018-1300Sam" "678" "020718-0800-C"