R 为什么我不能将带有1x1 tibble的变量添加到带有tibble::add_行的tibble中?

R 为什么我不能将带有1x1 tibble的变量添加到带有tibble::add_行的tibble中?,r,tidyverse,tibble,R,Tidyverse,Tibble,这是我正在尝试做的一个简单的例子。为什么我不能为每个变量添加一行1x1 TIBLE d <- tibble(x = 2, y = 3) x1 <- tibble(1) y1 <- tibble(7) d2 <- d %>% tibble::add_row( x = x1, y = y1 ) 我知道下面的工作,但它是不整洁的,它只是似乎应该有一个更好的方式 d <- tibble(x = 2, y = 3) x1 <- tibb

这是我正在尝试做的一个简单的例子。为什么我不能为每个变量添加一行1x1 TIBLE

d <- tibble(x = 2, y = 3)
x1 <- tibble(1)
y1 <- tibble(7)

d2 <- d %>%
  tibble::add_row(
    x = x1,
    y = y1
  )
我知道下面的工作,但它是不整洁的,它只是似乎应该有一个更好的方式

d <- tibble(x = 2, y = 3)
x1 <- tibble(1)
y1 <- tibble(7)

d2 <- d %>%
  tibble::add_row(
    x = as.numeric(x1),
    y = as.numeric(y1)
  )

提前感谢您的好友:

将评论升级为答案:


您试图在第一次尝试时将此实例中的整个数据集“tibble”插入到单个单元格中。您需要从数据集中选择一列作为行添加

add_row(d, x = x1[[1]], y = y1[[1]])
运行as.numericx1也会以一种循环的方式将x1转换为向量,正如您所发现的,这也会起作用

您还可以完全使用dplyr并执行以下操作:


…如果您想避免使用[[括号。

您在第一次尝试时尝试将整个数据集插入单个单元格。您需要从数据集中选择要添加为行的单个列-add_rowd,x=x1[[1]],y=y1[[1]].以.numericx1的形式运行只是将x1以一种循环的方式转换为向量,这也会起作用。如果要避免使用[[括号。x1和y1必须是tibble有什么原因吗?如果它们只是数字,你的第一次尝试就可以了。它们是tibble,因为我是从一个tibble中选择它们的。例如,如果我的tibble被称为tibble_obj,那么我是使用tibble_obj[1,3]得到值的,但现在我明白了如果我使用tibble_obj[[1,3]]这只给了我价值,而不是另一个tibble,一切正常。谢谢!!
add_row(d, x = pull(x1,1), y = pull(y1,1))