我有以下数据框:

Name <- c("Apple", "Banana", "Milk")
black <- c(1, 2, 3)
white <- c(10, 5, 999)
df <- data.frame(Name, black, white)
print (df)

这将导致:

    Name black white
1  Apple     1    10
2 Banana     2     5
3   Milk     3   999

我想把它 retrofit 成以下几点:

    X     Y    Z  
1 black Apple  1
2 white Apple  10
3 black Banana 2
4 white Banana 5
5 black Milk   3
6 white Milk   999

推荐答案

library(tidyr)
long_df <- df |> pivot_longer(cols = c('black', 'white'), names_to = "X", values_to = "Z")

稍微重新组织,以保留"名称"列的名称.

Name X Z
Apple black 1
Apple white 10
Banana black 2
Banana white 5
Milk black 3
Milk white 999

要生成热图,请执行以下操作:

library(ggplot2)
long_df |> ggplot(aes(Name, X, fill = Z)) + geom_tile()

这与999的白牛奶价值有很大的不同.

R相关问答推荐

在R中使用download. file().奇怪的URL?

在rpart. plot或fancyRpartPlot中使用带有下标的希腊字母作为标签?

如何通过判断数据框的一列来压缩另一列?

将Posict转换为数字时的负时间(以秒为单位)

减少雨云面之间的间距并绘制所有统计数据点

Rmarkdown::Render vs Source()

按组跨多列创建伪变量

SHILINY中DT列的条件着色

ggplot斜体轴刻度标签中的单个字符-以前的帖子建议不工作

我正在try 创建一个接近cos(X)的值的While循环,以便它在-或+1-E10范围内

如何编辑被动式数据表?

对一个数据帧中另一个数据帧中的值进行计数

以列名的字符向量作为参数按行应用自定义函数

如何在用`{{ }}`创建的变量上使用整洁 Select ?

有没有一种方法可以在pivot_longer()中 Select 最后一列,而不需要命名或给出索引号?

使用离散标签自定义图例,用于具有连续但已入库的数据的热图

如何比较R中每行数据帧中的嵌套列表?

为什么R外部指针不寻常的复制语义意味着它们不应该单独使用?

R:如何创建一个列,其中包含事件第一次发生时的值

如何在gg散点图中增加自动生成的R和p值的字体大小?