我有以下格式的数据集。 V1
,V2
& V3
填充了日期(一个月内)。我想填充我的输出列,一个由“,”
ID V1 V2 V3 #Output Column
1 08 21 26 13,5
2 11 13 19 2,6
3 13 17 21 4,4
4 06 11 16 5,5
5 07 09 11 2,2
6 02 05 09 3,4
先谢谢
答案 0 :(得分:4)
无需键入每个列组合的解决方案:
dat$output <- apply(t(apply(dat[,-1], 1, diff)), 1, paste, collapse = ",")
给出:
> dat
ID V1 V2 V3 output
1 1 8 21 26 13,5
2 2 11 13 19 2,6
3 3 13 17 21 4,4
4 4 6 11 16 5,5
5 5 7 9 11 2,2
6 6 2 5 9 3,4
说明:
使用t(apply(dat[,-1], 1, diff))
,您可以创建列之间差异的矩阵。通过将其包装在另一个apply
调用(apply(x, 1, paste, collapse = ",")
)中并将其分配给输出列。使用dat[,-1]
,您可以从差异计算中排除id
列。
答案 1 :(得分:1)
尝试,
df$ouput <- paste(df$V2 - df$V1,",",df$V3 - df$V2, sep = "")
将df
视为您的数据框
答案 2 :(得分:0)
使用diff
一些数据:
> V1 = c(8,11,13,6,7, 2)
> V2 = c(21,13,17,11,09,05)
> V3 = c(26,21,16,11, 9)
解决方案:
rbind(diff(rbind(V1,V2)), diff(rbind(V2,V3)))
答案 3 :(得分:-1)
请尝试以下代码。
假设数据已作为TEMP_TABLE存储在表名中
1.请在下面查询
2.从TEMP_TABLE中选择concat(concat(V1-V2,','),V2-V3)
3.所需的数据将会到来。
由于