我创建了一个 zscore 矩阵,如下所示
A 栏 | L1 | L2 | L3 | L4 | L5 |
---|---|---|---|---|---|
A | 1.29 | 4.5 | 1.13 | 2.3 | |
B | 3.46 | 5.7 | |||
C | 3 | 8.16 | 2.1 | 6.23 |
我想将其转换为包含两列的表,A 列包含名称,B 列包含值。
我已经尝试过:
df <- as.data.frame(mx)
colnames(df) <- c('columnA', 'columnB')
这不会改变上面的矩阵,只是添加一个新的空列(columnB)。 基本上所有的值都应该在一列(columnB)中横穿,并且列A中的名称应该在每个类别中重复。所以我也根据之前在 stackoverflow 上的讨论尝试过这个。
df <- mx %>%
mutate(ColumnA = as.data.frame(ColumnA)) %>%
unnest_wider(ColumnA)
这也不会修改 mx。
您有不同的选择来执行此操作。这里有一些使用不同库的示例。您可以使用标签 L1、L2 等保留变量,还可以使用
filter
来保留值中的
NA
值
filter(!is.na(value))