R要替换的项目数不是创建列表时替换长度的倍数
您好,我正在尝试创建一个列表,其中每个索引将根据匹配条件存储不同的数据。我有以下数据:R要替换的项目数不是创建列表时替换长度的倍数,r,list,for-loop,append,R,List,For Loop,Append,您好,我正在尝试创建一个列表,其中每个索引将根据匹配条件存储不同的数据。我有以下数据: col1 col2 col3 500x high 9.07 5x low 23.6 50x medium 11.64 500x high 8.24 5x low 35.17 50x medium 12.82 我有以下R脚本: somelist<-list() tempinfo<-("500x","50x"
col1 col2 col3
500x high 9.07
5x low 23.6
50x medium 11.64
500x high 8.24
5x low 35.17
50x medium 12.82
我有以下R脚本:
somelist<-list()
tempinfo<-("500x","50x","5x")
for(k in seq(from=1,to=nrow(dataset),by=3)){
for(y in 0:2){
if (any(as.character(dataset[,1][k+y]) == tempinfo)) {
somelist[as.character(dataset[,1][k+y])]<-append(somelist[as.character(dataset[,1][k+y])],as.character(dataset[,3][k+y]))
}
}
}
但不幸的是,我得到了以下错误:
要替换的项目数不是替换长度的倍数
有人知道为什么吗?
基本上是对评论的认可。(我尝试通过两次不同的搜索找到了一个副本,但都失败了,尽管我很确定一定有一个。)
>dat拆分(dat$col3,dat$col1)
$`500x`
[1] 9.07 8.24
$`50x`
[1] 11.64 12.82
$`5x`
[1] 23.60 35.17
基本上是对评论的认可。(我尝试通过两次不同的搜索找到了一个副本,但都失败了,尽管我很确定一定有一个。)
>dat拆分(dat$col3,dat$col1)
$`500x`
[1] 9.07 8.24
$`50x`
[1] 11.64 12.82
$`5x`
[1] 23.60 35.17
您是否正在尝试制作自己版本的拆分
?也就是说,split(数据集$col1,数据集$col3)
是这样的,但我想基于索引将这些值存储在列表中,以备将来使用analysis@Paul85-split
将根据拆分变量的唯一值命名每个列表组件-在本例中为col3
-我认为这正是您想要的。@Gregor我认为是另一种方式。在col1上拆分col3您是否正在尝试制作自己版本的split
?也就是说,split(数据集$col1,数据集$col3)
是这样的,但我想基于索引将这些值存储在列表中,以备将来使用analysis@Paul85-split
将根据拆分变量的唯一值命名每个列表组件-在本例中为col3
-我认为这正是您想要的。@Gregor我认为是另一种方式。在col1上拆分col3
somelist
$500x
[1] 9.07 8.24
$50x
[1] 11.64 12.82
$5x
[1] 23.6 35.17
> dat <- read.table(text="col1 col2 col3
+ 500x high 9.07
+ 5x low 23.6
+ 50x medium 11.64
+ 500x high 8.24
+ 5x low 35.17
+ 50x medium 12.82", head=T)
> split(dat$col3, dat$col1)
$`500x`
[1] 9.07 8.24
$`50x`
[1] 11.64 12.82
$`5x`
[1] 23.60 35.17