R 为什么我不能将带有1x1 tibble的变量添加到带有tibble::add_行的tibble中?
这是我正在尝试做的一个简单的例子。为什么我不能为每个变量添加一行1x1 TIBLER 为什么我不能将带有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
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))