R 在列表索引中,[[]]和$之间有什么区别?
有人能解释为什么下面的R 在列表索引中,[[]]和$之间有什么区别?,r,R,有人能解释为什么下面的list1和list2不一样吗 list1 <- list() lev1 <- "level1" lev2 <- "level2" list1[[lev1]][[lev2]] <- 1 list1 $level1 level2 1 list2 <- list() list2$level1$level2 <- 1 list2 $level1 $level1$level2 [1] 1 list1之所以发生这种情况,是因为您正
list1
和list2
不一样吗
list1 <- list()
lev1 <- "level1"
lev2 <- "level2"
list1[[lev1]][[lev2]] <- 1
list1
$level1
level2
1
list2 <- list()
list2$level1$level2 <- 1
list2
$level1
$level1$level2
[1] 1
list1之所以发生这种情况,是因为您正在将长度1向量指定给空原子向量
从帮助(摘录)
-
当$在类似的更简单的情况下为a=NULL;a$1=1;与b相比,a
为空;b[[“lev1”]]=1;b
这可能更清楚。自<代码>“[[
list1 <- list()
lev1 <- "level1"
lev2 <- "level2"
list1[[lev1]][[lev2]] <- 1:2
list1
# $level1
# $level1$level2
# [1] 1 2
list2 <- list()
list2$level1$level2 <- 1:2
list2
# $level1
# $level1$level2
# [1] 1 2
x <- NULL
## assign a length 1 vector --> atomic result
x[["lev1"]] <- 1
x
# lev1
# 1
y <- NULL
## assign a length > 1 vector --> list result
y[["lev1"]] <- 1:2
y
# $lev1
# [1] 1 2