return 多列的差异作为一个用“,”分隔的向量
return difference of multiple columns as a vector separated by ","
我有以下格式的数据集。 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
提前致谢
试试,
df$ouput <- paste(df$V2 - df$V1,",",df$V3 - df$V2, sep = "")
考虑将 df
作为您的数据框
使用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)))
请尝试以下代码。
假设数据已存储在 table name as TEMP_TABLE.
1.请运行下方查询
2. select concat( concat(V1-V2, ','), V2-V3) 来自 TEMP_TABLE
3.需要的数据会来。
谢谢
无需键入每个列组合的解决方案:
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
列。
我有以下格式的数据集。 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
提前致谢
试试,
df$ouput <- paste(df$V2 - df$V1,",",df$V3 - df$V2, sep = "")
考虑将 df
作为您的数据框
使用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)))
请尝试以下代码。
假设数据已存储在 table name as TEMP_TABLE.
1.请运行下方查询
2. select concat( concat(V1-V2, ','), V2-V3) 来自 TEMP_TABLE
3.需要的数据会来。
谢谢
无需键入每个列组合的解决方案:
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
列。