R中[[]]和[]的区别

20 浏览
0 Comments

R中[[]]和[]的区别

这个问题已经有答案了

访问列表或数据帧元素时使用方括号[]和双方括号[[]]的区别

我想清楚地理解[]和[[]]之间的区别,我运行了下面的代码片段。我知道[[]]返回列表的单个成员,而[]返回元素列表。但是为什么我运行“all_data [1] = list(5,6)”时出错了,但是我运行“all_data [[1]] = list(5,6)”或运行“all_data [2] = 5”时没有出错呢?

all_data <- list()
all_data[2]=5
all_data[1]=list(5,6)
all_data[[1]]=list(5,6)
all_data


根据第一个答案的第一个评论,添加一行代码来进一步理解

all_data[1:2] <- list(5,6)

admin 更改状态以发布 2023年5月25日
0
0 Comments

all_data[1]=list(5,6)会给你一个警告(而不是错误),提示长度不一样。你不能把一个元素的列表设置成一个两个元素的列表。这就像尝试使用x <- 1; x[1] <- 1:2一样。

但是你可以将一个列表的一个元素设置为包含另一个列表,这就是为什么all_data[[1]]=list(5,6)有效的原因。

0