全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1954 5
2016-07-29
x1<-c("a","b","c","d","e","h","k","l","m","n","p")
x2<-c(1,3,2,9,8,10,11,7,6,8,12)
x3<-c(0.12,0.11,0.02,0.31,0.22,0.17,0.43,0.35,0.61,0.44, 0.29)
x<-data.frame(x1,x2,x3)
library(dplyr)
data.list<-list()
for(i in 6:10)
{data.list[i-5]<-x%>% filter(x$x2>=i)}
得到的结果是
Warning messages:
1: In data.list[i - 5] <- x %>% filter(x$x2 >= i) :
  number of items to replace is not a multiple of replacement length
2: In data.list[i - 5] <- x %>% filter(x$x2 >= i) :
  number of items to replace is not a multiple of replacement length
3: In data.list[i - 5] <- x %>% filter(x$x2 >= i) :
  number of items to replace is not a multiple of replacement length
4: In data.list[i - 5] <- x %>% filter(x$x2 >= i) :
  number of items to replace is not a multiple of replacement length
5: In data.list[i - 5] <- x %>% filter(x$x2 >= i) :
  number of items to replace is not a multiple of replacement length
> data.list
[[1]]
[1] d e h k l m n p
Levels: a b c d e h k l m n p

[[2]]
[1] d e h k l n p
Levels: a b c d e h k l m n p

[[3]]
[1] d e h k n p
Levels: a b c d e h k l m n p

[[4]]
[1] d h k p
Levels: a b c d e h k l m n p

[[5]]
[1] h k p
Levels: a b c d e h k l m n p
为什么得不到下面的类型?
x1 x2   x3
1  d  9 0.31
2  e  8 0.22
3  h 10 0.17
4  k 11 0.43
5  l  7 0.35
6  n  8 0.44
7  p 12 0.29

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2016-7-29 22:14:36
将循环命令修改一下:
for(i in 6:10){data.list[[i-5]]<- x%>%filter(x$x2>=i)}
#注意这块是两个方括号

#x%>%和x$的作用重了,没必要
for(i in 6:10){data.list[[i-5]]<- x%>%filter(x2>=i)}  
for(i in 6:10){data.list[[i-5]]<- filter(x,x2>=i)}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-30 09:00:33
百年-树人 发表于 2016-7-29 22:14
将循环命令修改一下:
for(i in 6:10){data.list[]%filter(x$x2>=i)}
#注意这块是两个方括号
谢谢你,学习了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-30 09:13:39
百年-树人 发表于 2016-7-29 22:14
将循环命令修改一下:
for(i in 6:10){data.list[]%filter(x$x2>=i)}
#注意这块是两个方括号
能否再问一下,怎样取出data.data.list[[5]][3]中的第一个元素
    x3
1 0.17
2 0.43
3 0.29,因为我想算一下0.17/sum(data.list[[5]][3])
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-30 10:06:06
mashagua 发表于 2016-7-30 09:13
能否再问一下,怎样取出data.data.list[[5]][3]中的第一个元素
    x3
1 0.17
> data.list[[5]]
  x1 x2   x3
1  h 10 0.17
2  k 11 0.43
3  p 12 0.29
> data.list[5]
[[1]]
  x1 x2   x3
1  h 10 0.17
2  k 11 0.43
3  p 12 0.29
#比较两个方框和一个方框的索引结果。前者得到的是对应列表对象,那么对象是什么结构(比如向量、矩阵、数据框等),其输出结果就是什么结构;而后者得到的只是对应的子列表,其结构仍然是列表。
所以,若想得到某个子列表中的某个元素就简单了。先通过双方框索引提取出相应结构,再对该结构进行进一步索引。
如获取第五资列表的x3列的第一个元素:
> data.list[[5]][1,3]
[1] 0.17
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-7-30 10:27:30
百年-树人 发表于 2016-7-30 10:06
> data.list[[5]]
  x1 x2   x3
1  h 10 0.17
谢谢,谢谢,学习了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群