我有一个名为Variable的列和一些与之关联的值:
Variable Value
A D 5
A D 5
B D 5
B E 5
C E 5
C E 5
其中(A D),(B D),(B E),(C E)是我分析的一些东西的名称。如何将列拆分为2列,将第1列作为因子列:
Column1
A:2
B:2
C:2
和第2列遵循类似的结构:
Column2
D:3
E:3
答案 0 :(得分:0)
由于 Column1 和 Column2 具有不同的行号,因此我使用 list 来存储结果。
data <- data.frame(
Variable = c("A D", "A D", "B D", "B E", "C E", "C E"),
Value = rep(5, 6)
)
split_var <- function(variable){
return(strsplit(variable, " ")[[1]])
}
variable_mat <- t(apply(matrix(data[,1], ncol=1), 1, split_var))
Column1_table <- table(variable_mat[,1])
Column1 <- paste(names(Column1_table), Column1_table, sep = ":")
Column2_table <- table(variable_mat[,2])
Column2 <- paste(names(Column2_table), Column2_table, sep = ":")
result_list <- list(Column1 = Column1, Column2 = Column2)
结果:
> result_list
$Column1
[1] "A:2" "B:2" "C:2"
$Column2
[1] "D:3" "E:3"