gpt4 book ai didi

r - 这些数据框分配之间有什么区别?

转载 作者:行者123 更新时间:2023-12-02 03:38:34 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

 pid tid      pname 
2 NA proc/boot/procnto-smp-instr

现在,如果我这样做,我预计不会发生任何事情:

y[c(FALSE), "pid"] <- 10

什么也没有发生(y没有改变)。但是,如果我这样做:

y[c(FALSE), ]$pid <- 10

我得到:

Error in $<-.data.frame(*tmp*, "pid", value = 10) :
replacement has 1 rows, data has 0

所以我的问题是,[, "col"]<- 之间有什么区别?和$col<- ?为什么会抛出异常?还有额外的好处:我可以在文档中的哪里阅读更多相关内容?

最佳答案

错误来自代码$<-.data.frame它检查原始 data.frame 的行数是否至少与替换向量的长度一样多:

 nrows <- .row_names_info(x, 2L)
if (!is.null(value)) {
N <- NROW(value)
if (N > nrows)
stop(sprintf(ngettext(N, "replacement has %d row, data has %d",
"replacement has %d rows, data has %d"), N, nrows),
domain = NA)

[<-是一个不同的函数,它不执行此检查。这是一个primitive函数,您可以在 R Internals manual 中阅读更多信息

关于r - 这些数据框分配之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16971242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com