【问题标题】:Calculate dataframe similar rows计算数据框相似行
【发布时间】:2021-07-06 09:09:51
【问题描述】:

我是 R 新手。 我有一个数据框(New1)包含 400 行和 5 列。 这是一个例子:

A   B   C   D   E
0   0   0   0   0
0   0   0   0   1
0   0   0   0   2
0   0   0   1   0
0   0   0   1   1
0   0   0   1   2
0   0   0   2   0
0   0   0   2   1

我想添加一个新列,其中发生相同事件的数量。 例如该表中(A=0, B=0, C=0, D=0, E=0)的事件数为0。 然后在此表 1 中的事件数(A=0、B=0、C=0、D=0、E=1)。 等等。

这在 R 中可行吗?

【问题讨论】:

  • 不明白你想要什么..你可以提供一些示例数据,以便人们可以尝试做你想做的事情吗?
  • 您的问题与问题的标题有什么关系?向现有数据框添加列与将矩阵转换为数据框不同。

标签: r matrix


【解决方案1】:
#sample Mat

Mat <-structure(c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
                0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 
                1L, 2L, 2L, 0L, 1L, 2L, 0L, 1L, 2L, 0L, 1L), .Dim = c(8L, 5L), .Dimnames = list(
                  NULL, NULL))

library(dplyr, warn.conflicts = F)

Mat
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,]    0    0    0    0    0
#> [2,]    0    0    0    0    1
#> [3,]    0    0    0    0    2
#> [4,]    0    0    0    1    0
#> [5,]    0    0    0    1    1
#> [6,]    0    0    0    1    2
#> [7,]    0    0    0    2    0
#> [8,]    0    0    0    2    1

Mat %>% as.data.frame() %>% setNames(LETTERS[1:ncol(.)]) %>%
  mutate(total = rowSums(cur_data()))
#>   A B C D E total
#> 1 0 0 0 0 0     0
#> 2 0 0 0 0 1     1
#> 3 0 0 0 0 2     2
#> 4 0 0 0 1 0     1
#> 5 0 0 0 1 1     2
#> 6 0 0 0 1 2     3
#> 7 0 0 0 2 0     2
#> 8 0 0 0 2 1     3

根据 cmets 的要求,保存 csv 使用 write.csv

Mat %>% as.data.frame() %>% setNames(LETTERS[1:ncol(.)]) %>%
  mutate(total = rowSums(cur_data())) %>%
  write.csv('path\\filename.csv')

【讨论】:

  • 非常感谢您的大力帮助。是否可以将这些结果提取为包含总计的表格?
  • 对于我经常提出的问题,我深表歉意。是不是应该像这样 m %>% as.data.frame() %>% setNames(LETTERS[1:ncol(.)]) %>% mutate(total = rowSums(cur_data()) write.csv( ))
  • 再次对您的打扰感到抱歉。我一直面临这个问题(即使我将尺寸更改为实际尺寸为 900 如下 Dim = c(900L, 5L))错误是:属性错误(.Data)
  • 我这样做是因为实际数据集包含 900 行。每次我运行此代码时,即使将 m 替换为数据名称,它也会生成一个 8 列的 csv
  • 所以用那个数据名替换Mat,为什么要改变样本数据输入?编辑了我的答案。似乎您对 R 非常陌生
猜你喜欢
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 2021-05-29
  • 2018-03-27
  • 2018-10-02
  • 2020-04-17
  • 1970-01-01
  • 2021-05-24
相关资源
最近更新 更多