首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何向data.frame添加列

如何向data.frame添加列
EN

Stack Overflow用户
提问于 2020-11-18 13:42:50
回答 2查看 23关注 0票数 0

我是R中的新手,现在我有一个25行3列的“a”。我想添加一列,这一列将是:第1-5行将是"A“,第6-10行将是”B“.,然后它将向上移动到最后一行。是否可以实现自动添加?我自动地将五行中的每一行命名为"A“、"B”、"C“、”D“……,而不管原始的"a”中有多少行。

代码语言:javascript
复制
a<-matrix(c(1:75),nrow=25,ncol=3,byrow = T)
a
a<-as.data.frame(a)
EN

回答 2

Stack Overflow用户

发布于 2020-11-18 13:46:02

您可以使用rep

代码语言:javascript
复制
a$new_col <- LETTERS[rep(1:nrow(a), each = 5, length.out = nrow(a))]
a

#   V1 V2 V3 new_col
#1   1  2  3       A
#2   4  5  6       A
#3   7  8  9       A
#4  10 11 12       A
#5  13 14 15       A
#6  16 17 18       B
#7  19 20 21       B
#8  22 23 24       B
#9  25 26 27       B
#10 28 29 30       B
#11 31 32 33       C
#12 34 35 36       C
#...
#...
票数 1
EN

Stack Overflow用户

发布于 2020-11-18 14:55:31

备用解决方案tidyverse方式

代码语言:javascript
复制
library(tidyverse)

a %>% mutate(id = row_number()-1, 
             new_col = LETTERS[(id%/%5)+1]) %>%
  select(-id)

   V1 V2 V3 new_col
1   1  2  3       A
2   4  5  6       A
3   7  8  9       A
4  10 11 12       A
5  13 14 15       A
6  16 17 18       B
7  19 20 21       B
8  22 23 24       B
9  25 26 27       B
10 28 29 30       B
11 31 32 33       C
12 34 35 36       C
13 37 38 39       C
14 40 41 42       C
15 43 44 45       C
16 46 47 48       D
17 49 50 51       D
18 52 53 54       D
19 55 56 57       D
20 58 59 60       D
21 61 62 63       E
22 64 65 66       E
23 67 68 69       E
24 70 71 72       E
25 73 74 75       E

注意:将在26x5行耗尽后添加NA

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64887706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档