【问题标题】:Data.frame in R: concatenation of two column, numbers instead of occurrencesR中的Data.frame:两列的连接,数字而不是出现
【发布时间】:2016-11-08 11:33:08
【问题描述】:

我有一个非常简单的问题,但我找不到答案:我有这个 data.frame:

b=c("a","a","a","a","a","b","b","b","b","c")
c=c("b","b","b","b","b","c","c","c","c","d")

a<-data.frame(b,c)

如果我想将a$ba$c 向量放在一列中:

f<-c(a$b,a$c)

结果不一样

> f<-c(b,c)
> f
 [1] "a" "a" "a" "a" "a" "b" "b" "b" "b" "c" "b" "b" "b" "b" "b" "c" "c" "c" "c" "d"

但是

> f<-c(a$b,a$c)
> f
 [1] 1 1 1 1 1 2 2 2 2 3 1 1 1 1 1 2 2 2 2 3

? 提前致谢!

编辑: 试过这个,看看上面可能的重复建议:

> a<-data.frame(z=as.character(b),k=as.character(c))
> f<-c(a$z,a$k)
> f  [1] 1 1 1 1 1 2 2 2 2 3 1 1 1 1 1 2 2 2 2 3

【问题讨论】:

  • 你好,如果我没记错那不行,但是下yes的解决方法!
  • 基本上,这是一个非常常见的问题,我们将因子视为字符并尝试对它们进行不同的操作。如果您这样做f &lt;- c(as.character(a$z), as.character(a$k)),它也会起作用

标签: r dataframe data-manipulation


【解决方案1】:

您必须在data.frame() 函数中将stringsAsFactors 设置为FALSE。否则,字符串将被解释为因子,从而导致您不希望的输出。

b <- c("a","a","a","a","a","b","b","b","b","c")
c <- c("b","b","b","b","b","c","c","c","c","d")

a <- data.frame(b,c, stringsAsFactors = F)

f <- c(a$b,a$c)

f
[1] "a" "a" "a" "a" "a" "b" "b" "b" "b" "c" "b" "b" "b" "b" "b" "c" "c" "c" "c" "d"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    相关资源
    最近更新 更多