超过2,000个科目。我想改变' time2'的价值。按主题每第一行为0。例如,ID = 2的主题有1个用于' time2'在这个主题的第一行。考虑到2k科目,如何将其改为0?
ID time1 time2
1 0 0
1 0 1
1 1 5
2 0 1
2 1 3
2 3 5
3 ....
答案 0 :(得分:4)
使用dplyr
,我们可以根据ifelse
row_number()
df2 %>%
group_by(ID) %>%
mutate(time2 = ifelse(row_number()==1, 0, time2))
# A tibble: 6 x 3
# Groups: ID [2]
# ID time1 time2
# <int> <int> <dbl>
#1 1 0 0
#2 1 0 1
#3 1 1 5
#4 2 0 0
#5 2 1 3
#6 2 3 5
或者使用data.table
,创建按“ID”分组的行索引(.I
),并将“time2”中与行索引对应的元素分配给:=
为0
library(data.table)
setDT(df2)[df2[, .I[seq_len(.N)==1] , ID]$V1, time2 := 0][]
# ID time1 time2
#1: 1 0 0
#2: 1 0 1
#3: 1 1 5
#4: 2 0 0
#5: 2 1 3
#6: 2 3 5
或者是紧凑的base R
选项(假设'ID'是order
ed)
df$time2[!duplicated(df$ID)] <- 0
df
# ID time1 time2
#1 1 0 0
#2 1 0 1
#3 1 1 5
#4 2 0 0
#5 2 1 3
#6 2 3 5
答案 1 :(得分:3)
您还可以将app.post('/uploadImage', function(request, response) {
var readerStream = fs.createReadStream(request.files[0].path);
var dest_file = pathModule.join(request.files[0].destination, request.files[0].originalname);
var writerStream = fs.createWriteStream(dest_file);
var stream = readerStream.pipe(writerStream);
stream.on('finish', function(){
fs.unlink(request.files[0].path);
});
});
与dplyr
结合使用:
replace