R 更改空数据帧';s柱安全

R 更改空数据帧';s柱安全,r,dataframe,dplyr,R,Dataframe,Dplyr,我有一个空的数据框。我试图给这个数据框的一列赋值。由于数据帧是空的,我希望得到一个空的数据帧作为回报,如下所示: df = data_frame(a = integer()) df %>% mutate(a = 1) # A tibble: 0 × 1 # ... with 1 variables: a <dbl> 当我尝试使用$运算符指定值时,即使指定单个值也会产生错误: df$a = 1 # Error in `$<-.data.frame`(`*tmp*`,

我有一个空的数据框。我试图给这个数据框的一列赋值。由于数据帧是空的,我希望得到一个空的数据帧作为回报,如下所示:

df = data_frame(a = integer())
df %>%
  mutate(a = 1)
# A tibble: 0 × 1
# ... with 1 variables: a <dbl>
当我尝试使用
$
运算符指定值时,即使指定单个值也会产生错误:

df$a = 1
# Error in `$<-.data.frame`(`*tmp*`, "a", value = 1) :
# replacement has 1 row, data has 0
df$a=1
#“$中有错误,这个怎么样

df <- data_frame(a = integer())
df %>%
   mutate(a = (1:10)[seq_len(nrow(df))])
df%
变异(a=(1:10)[顺序(nrow(df))]


df$a Try
df%>%bind_rows(,data_frame(a=1))
谢谢你的回答,但我希望能找回空的数据帧。我不想在数据框中添加新行。我不确定您想要的是什么,但您可以将特定步骤包装成
df%%>%tryCatch(.%>%mutate(a=1:2),error=return(df))%%>%等。
感谢@davidernburg的建议。我正在寻找一个尽可能简洁的安全解决方案。我可以使用
tryCatch
if
,但它们会使代码混乱。我想知道是否有一种解决方案不会使实际代码混乱。
tryCatch
是安全的版本。这基本上是tidyverse建议的-例如
?purr::safety
。所以<代码>安全变异%safe\u变异(a=1:2)
df <- data_frame(a = integer())
df %>%
   mutate(a = (1:10)[seq_len(nrow(df))])
df$a <- (1:10)[seq_len(nrow(df))]