【问题标题】:Replace index column in dataframe替换数据框中的索引列
【发布时间】:2017-12-26 14:20:15
【问题描述】:

我正在尝试使用“d3heatmap”为数据集制作热图。

我有一个数据框,其第一列包含足球运动员的姓名。但是,我收到以下错误,因为该列不是数字。

rowMeans(x, na.rm = na.rm) 中的错误:'x' 必须是数字"

+----------------------+--------------------+---------+-------+
| Index column         | Player             | Minutes | Goals |
+----------------------+--------------------+---------+-------+
| 1                    |             Robert | 1234    | 10    |
| 2                    |             John   | 1253    | 15    |
| 3                    |             Mark   | 112     | 1     |
+----------------------+--------------------+---------+-------+

如何用我的第一列(播放器)替换数据框的索引列?

理想情况

+--------------------+---------+-------+
| Player             | Minutes | Goals |
+--------------------+---------+-------+
|             Robert | 1234    | 10    |
|             John   | 1253    | 15    |
|             Mark   | 112     | 1     |
+--------------------+---------+-------+

我正在尝试搜索类似的问题,但我没有得到答案。

非常感谢您提前提供的帮助。非常感谢。

谢谢, 娟妈

【问题讨论】:

  • 试试这个例子。 dat <- data.frame(a=letters[1:5], val=rnorm(5)) 一些玩具数据框架。然后dat2 <- as.data.frame(dat[-1], row.names=as.character(dat[,1])).
  • 这很棒。感谢您发送便条。它确实适用于我的数据集。非常感谢

标签: r visualization d3heatmap


【解决方案1】:

我不确定您是否想要下面的dat2dat3。事实上,我不确定Index column 是不是你原来的data.frame 中的一个列,我会假设它是。

dat <- data.frame(
        index = 1:3,
        Player = c("Robert", "John", "Mark"),
        Minutes = c(1234, 1253, 112),
        Goals = c(10, 15, 1)
    )

dat
dat2 <- dat[, -1]
dat2
  Player Minutes Goals
1 Robert    1234    10
2   John    1253    15
3   Mark     112     1

在下一个例子中,dat3,我已经删除了 Player 列,并在行名中转换了它的值。

dat3 <- dat[, -(1:2)]
rownames(dat3) <- dat$Player
dat3
       Minutes Goals
Robert    1234    10
John      1253    15
Mark       112     1

【讨论】:

  • 非常感谢,它真的对我有用。是的,这是我需要的第二个例子。
  • 如果我们只想删除第一列,dat3
  • @HendraBunyamin 是的,甚至是前一种情况,dat2
猜你喜欢
  • 2018-01-31
  • 2020-08-01
  • 2013-12-28
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-18
  • 2021-06-11
相关资源
最近更新 更多