假设我有这样的事情:
dat <- data.frame(ID = c("A", "B", "C"),
value = c(1, 2, 3))
我想添加一个额外的列,其中我有一个这样的值: [A,1]
这将是一列,其中每个单值是“[”+ A(第一列中的值)+“,”+ B(第二列中的值)+“]”的串联。 我该怎么做?我尝试使用粘贴,但我做错了。
答案 0 :(得分:2)
假设这是您的数据
dat <- data.frame(ID = c("A", "B", "C"), value = c(1, 2, 3))
这样可行
dat$concat <- paste0("[", dat$ID, ", ", dat$value, "]")
ID value concat
1 A 1 [A, 1]
2 B 2 [B, 2]
3 C 3 [C, 3]
或者,如果你不想要逗号之后的空格:
dat$concat <- paste0("[", dat$ID, ",", dat$value, "]")
答案 1 :(得分:2)
这是一种与无穷无尽的列一致的方法:
dat$conc <- paste0("[",apply(dat,1,paste,collapse=","),"]")
使用您的示例:
dat <- data.frame(ID = c("A", "B", "C"), value = c(1, 2, 3))
dat$conc <- paste0("[",apply(dat,1,paste,collapse=","),"]")
给出:
ID value conc
1 A 1 [A,1]
2 B 2 [B,2]
3 C 3 [C,3]
或者,如果我们的数据框包含更多列:
dat <- data.frame(ID = c("A", "B", "C"), value = c(1, 2, 3), value2 = c(4, 5, 6))
dat$conc <- paste0("[",apply(dat,1,paste,collapse=","),"]")
给出:
ID value value2 conc
1 A 1 4 [A,1,4]
2 B 2 5 [B,2,5]
3 C 3 6 [C,3,6]