代码之家  ›  专栏  ›  技术社区  ›  Jesper.Lindberg

获取数据中的一行。帧作为向量,其中每个元素都是字符串

r
  •  0
  • Jesper.Lindberg  · 技术社区  · 7 年前

    我无法从数据源获取所需的输出。框架数据结构如下所示:

    head(test)
    
        A  T  L   B  E  X   D
    4  no no no yes no no yes
    7  no no no  no no no  no
    11 no no no  no no no  no
    12 no no no yes no no yes
    17 no no no  no no no  no
    27 no no no  no no no  no
    

    我得到的结果是:

    test[1,]
       A  T  L   B  E  X   D
    4 no no no yes no no yes
    

    我想要的输出:

    [1] "no"  "no"  "no"  "yes" "no"  "no"  "yes"
    

    或者简单地说,我想要的输出是一个向量,其中每个元素都是 df .我可以做一个for循环或类似的蠢事,但我相信应该有一个更简单的方法,我错过了。

    我试过:

    as.character(test[1,])
    [1] "1" "1" "1" "2" "1" "1" "2"
    

    我不确定我错过了什么?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Ronak Shah    7 年前

    使用 unlist 然后 as.character

    as.character(unlist(test[1, ]))
    #[1] "no"  "no"  "no"  "yes" "no"  "no"  "yes"
    

    test[1, ] 仍然是一个数据帧,正在应用 像性格 在数据帧上不起作用。我们使用 非上市 将数据帧转换为向量,然后使用 像性格 将其转换为角色。

    数据

    test <- structure(list(A = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "no", class = "factor"), 
    T = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "no", class = "factor"), 
    L = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "no", class = "factor"), 
    B = structure(c(2L, 1L, 1L, 2L, 1L, 1L), .Label = c("no", 
    "yes"), class = "factor"), E = structure(c(1L, 1L, 1L, 1L, 
    1L, 1L), .Label = "no", class = "factor"), X = structure(c(1L, 
    1L, 1L, 1L, 1L, 1L), .Label = "no", class = "factor"), D = structure(c(2L, 
    1L, 1L, 2L, 1L, 1L), .Label = c("no", "yes"), class = "factor")), 
    class = "data.frame", row.names = c("4", "7", "11", "12", "17", "27"))