Q
串聯的行和列
1
A
回答
1
您可以使用melt
,並paste
但你將需要使你的rownames變量,我..
df$new <- rownames(df)
m_df <- reshape2::melt(df)
rownames(m_df) <- paste0(m_df$new, m_df$variable)
m_df <- m_df[-c(1:2)]
m_df
# value
#ax 5
#bx 1
#ay 4
#by 2
#az 3
#bz 1
你的編輯後,您不需要rownames轉換爲一個變量,以便公正,
m1_df <- reshape2::melt(df)
m1_df$new <- paste0(m1_df$x, m1_df$variable)
m1_df
# x variable value new
#1 a y 5 ay
#2 b y 1 by
#3 a z 4 az
#4 b z 2 bz
然後,您可以整理你的數據幀所需的輸出
0
library(reshape2)
library(dplyr)
library(tibble)
library(stringr)
# Create dataframe
x <- data.frame(x = c(5, 1),
y = c(4, 2),
z = c(3, 1),
row.names = c('a', 'b'))
# Convert rowname to column and melt
x <- tibble::rownames_to_column(x, "rownames") %>%
melt('rownames')
# assign concat columns as rownames
row.names(x) <- str_c(x$rownames, x$variable)
# Select relevant columns only
x <- select(x, value)
# Remove names from dataframe
names(x) <- NULL
> x
ax 5
bx 1
ay 4
by 2
az 3
bz 1
1
與dplyr-tidyr
library(dplyr)
library(tidyr)
df %>%
gather(var, val, -x) %>%
mutate(var=paste0(x, var)) %>%
select(var, val)%>%
arrange(var)
# var val
#1 ay 5
#2 az 4
#3 by 1
#4 bz 2
0
這是base R
的另一種選擇
stack(setNames(as.list(unlist(df1[-1])), outer(df1$x, names(df1)[-1], paste0)))[2:1]
相關問題
- 1. 透視表和串聯列
- 2. 串聯int和nvarchar列
- 3. 在陣列運行的承諾串聯
- 4. 串聯列
- 5. 串聯序列
- 6. 串聯列
- 7. 串聯列值
- 8. 串聯列表
- 9. 串聯行和刪除行基於其
- 10. Common Lisp的串聯和換行符
- 11. 串聯行
- 12. MYSQL串聯列不進行分組
- 13. 橫跨多行串聯某些列
- 14. 串聯列熊貓
- 15. 串聯詮釋列
- 16. 串聯交替列
- 17. VBA - 串聯列第一列
- 18. 串聯不同的列值
- 19. Oracle中的列值串聯
- 20. 的Python:串聯2列表
- 21. Django select字段是字符串和列值的串聯
- 22. 串聯串的兩個列表和r中附上指數
- 23. 串聯字符串和BigDecimals
- 24. 串聯NSString的不行
- 25. 串聯numpy的行元素
- 26. 與CAST和串聯
- 27. 列的複雜串聯成一列
- 28. 無效的列名稱'上串聯列
- 29. 的Python - GETATTR和串聯
- 30. LINQ:串聯/聯合多個序列
@Sotos對不起,我更新了我的文章! – RMteam