创建tibble返回错误:"如何命名列1"

时间:2017-11-08 23:04:04

标签: r

我试图创建一个圆柱形的tibble,其中每一行都是一个向量中的单个单词,但我不确定如何添加列名,因为尚未创建tibble。

此代码:

as_tibble(strsplit("this is a test" , " "))

返回错误:

Error: Column 1 must be named

如何命名第1列?

我试图为

的结果添加名称
strsplit("this is a test" , " ")

但这是一个字符串,因此无法命名?

[[1]] [1]"这个" "是" "" "测试"

3 个答案:

答案 0 :(得分:1)

隔离创建列表的第一个元素:

as_tibble(strsplit("this is a test" , " ")[[1]])

或列出您的列表元素:

ls=strsplit("this is a test" , " ")
names(ls)="test_tibble"
as_tibble(ls)

答案 1 :(得分:1)

如果你想要一个列名x:

,我会将strsplit转换为一个列表
as_tibble(list(x = (strsplit("this is a test" , " "))[[1]]))
# A tibble: 4 x 1
          x
      <chr>
    1  this
    2    is
    3     a
    4  test

答案 2 :(得分:0)

您可以这样做:

> strsplit("this is a test" , " ") %>% as_tibble(validate=F)
# A tibble: 4 x 1
  ``   
  <chr>
1 this 
2 is   
3 a    
4 test 

或者您可以做某事:

> strsplit("this is a test" , " ") %>% map(as_tibble) %>% bind_rows
# A tibble: 4 x 1
  value
  <chr>
1 this 
2 is   
3 a    
4 test 

这很有用,因为有时您需要一个默认的列名才能执行更复杂的列表操作