【问题标题】:R: Creating an index vectorR:创建索引向量
【发布时间】:2018-04-20 16:22:43
【问题描述】:

我需要一些关于 R 编码的帮助。

数据集 Glass 由 214 行数据组成,每行对应一个玻璃样品。每行由 10 列组成。当被视为一个分类问题时,第 10 列 (类型)指定每个观察/实例的类。其余列是可能用于推断第 10 列的属性。这是第一行的示例

  RI    Na   Mg   Al    Si    K    Ca   Ba   Fe Type

1 1.52101 13.64 4.49 1.10 71.78 0.06 8.75 0.0 0.0 1

首先,我转换了第 10 列,以便 R 将其解释为一个因子而不是整数值。
现在我需要为所有观察创建一个带有索引的向量(必须具有值 1-214)。这需要为朴素贝叶斯创建训练数据。我知道如何创建一个具有 214 个值的向量,但不知道如何创建一个具有特定索引的数据帧观察值。

如果这样做有助于为朴素贝叶斯设置训练数据,谢谢

【问题讨论】:

  • 另一个注意事项:第 10 列已被转换,因此它现在被解释为一个因子而不是一个整数

标签: r vector naivebayes


【解决方案1】:

我不完全确定我得到了你想要做的......所以如果我的解决方案没有帮助,请原谅我。如果您的 df 的名称是“df”,只需使用 dplyr 包来重新排序您的列并编写

library(dplyr)
df['index'] <- 1:214
df <- df %>% select(index,everything()) 

这是一个例子。这样我就可以发布完整的数据框,我的数据框将只有 10 行...

假设我的数据框是:

df <- data.frame(col1 = c(2.3,6.3,9.2,1.7,5.0,8.5,7.9,3.5,2.2,11.5), 
                col2 = c(1.5,2.8,1.7,3.5,6.0,9.0,12.0,18.0,20.0,25.0))

看起来像

   col1 col2
1   2.3  1.5
2   6.3  2.8
3   9.2  1.7
4   1.7  3.5
5   5.0  6.0
6   8.5  9.0
7   7.9 12.0
8   3.5 18.0
9   2.2 20.0
10 11.5 25.0

如果我想添加另一列只是 1,2,3,4,5,6,7,8,9,10... 我将其称为“索引”...我可以这个:

library(dplyr)
df['index'] <- 1:10
df <- df %>% select(index, everything())

这会给我

  index col1 col2
1    1  2.3  1.5
2    2  6.3  2.8
3    3  9.2  1.7
4    4  1.7  3.5
5    5  5.0  6.0
6    6  8.5  9.0
7    7  7.9 12.0
8    8  3.5 18.0
9    9  2.2 20.0
10  10 11.5 25.0

【讨论】:

  • 对不起,我没有解释清楚,但没有回答。我的错。我现在要发另一个帖子,希望它会更清楚
【解决方案2】:

希望这会有所帮助

 df$ind <- seq.int(nrow(df))

【讨论】:

    猜你喜欢
    • 2014-04-12
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多