【发布时间】:2015-09-29 16:39:01
【问题描述】:
我是 R 的新手,我需要你的帮助来做一些我至今无法做到的事情:
我有一个可以包含随机列数的数据框,我需要在数据框的每一列中只保留唯一值,但这必须独立于其他列来完成:
例如,如果有以下数据框:
Column_A Column_B Column_C
A 1 A1
A 2 A2
B 1 A3
B 2 A4
C 3 A5
C 4 A6
这个的输出,在代码之后必须是:
Column_A Column_B Column_C
A 1 A1
B 2 A2
C 3 A3
4 A4
A5
A6
我已尝试使用 ds <- unique(ds),但它只会留下所有列之间的唯一关系。
我真的很感激你能给我的任何帮助或指导。
提前致谢。
数据
`> str(df)
'data.frame': 6 obs. of 3 variables:
$ A: chr "A" "B" "C" "A" ...
$ B: num 1 2 1 2 3 4
$ C: chr "A1" "A2" "A3" "A4" ...`
循环
`i <- 1`
`while (i < ncol(df)){
+ df[i] <- lapply(df, function(x) {
+ x[duplicated(x)] <- ''
+ c(x[x!=''], x[x==''])})
+ i <- i+1
+}`
【问题讨论】:
-
你打算用你想要的输出做什么?我几乎从不需要或想要不规则的数组作为列;特别是对于
data.frame,每一列的长度必须相同。您可以用空格或 NA 填充列,但有什么意义呢? -
输出将被格式化并用于生成我在 alteryx 模块中使用的 dinamyc 查询。