匿名化R中每个不同行的数据

时间:2018-11-20 17:00:15

标签: r paste anonymize

示例

15   
15   
15   
4   
37   
37   
37  

有3个不同的值,但有7行,下面是我想要的。由于我想匿名化我的数据。我不断收到错误消息:“替换有3行,数据有7行”

这是我正在使用的代码

final_df$Value <- paste("Value",seq(1:length(unique(final_df$Value))))

Value 1
Value 1   
Value 1   
Value 2   
Value 3   
Value 3   
Value 3  

1 个答案:

答案 0 :(得分:0)

创建执行此功能的函数:

anon <- function(x) {
    rl <- rle(x)$lengths
    ans<- paste("Value", rep(seq_along(rl), rl))
    return(ans)
}

调用功能:

anon(final_df$Value)

结果:

# [1] "Value 1" "Value 1" "Value 1" "Value 2" "Value 3" "Value 3" "Value 3"

概括:

df1 <- mtcars
df1[] <- lapply(df1, anon)
names(df1)    <- paste0("V", seq_along(names(df1)))
rownames(df1) <- NULL

df1