作者samex4x4 (Same)
看板R_Language
标题[问题] list赋值
时间Wed Jul 12 15:38:11 2017
[问题类型]:
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
[软体熟悉度]:
请把以下不需要的部份删除
入门(写过其他程式,只是对语法不熟悉)
[问题叙述]:
十分基础的几个问题...Orz
1.
我想要创建list的型态长这样
list[[1]]
$seq_no
[1] '0001'
$name
[1] '水果'
$type
[1] 'A' 'B' 'C'
list[[2]]
$seq_no
[1] '0002'
$name
[1] '肉类'
$type
[1] 'B','C'
....
现在我手边有seq_no,name,type 的vector
(07/13更新:type会是一个长度和seq_no,name相同的list,里面包不同长度的vector
我的问题是 我要怎麽给list按照如上的顺序写入资料?
我可以这样写接forloop去做↓↓
list[[1]]$seq_no <- seqno[1]
list[[1]]$name <- name[1]
list[[1]]$type <- type[[1]]
list[[2]]$seq_no <- seqno[2]
list[[2]]$name <- name[2]
list[[2]]$type <- type[[2]]
但是我有没有办法一次性的叫出list[[1]]['seq_no'] list[[2]]['seq_no']....
以前用lapply(list, '[[', 1) 可以看到这个值 但要怎麽写进去没有头绪Orz
谢谢大家)
想要每个写入给list[[1]] list[[2]]......
目前写到这边就不太确定要怎麽把内部资料写进去了
test <- vector(mode = 'list', length = length(seq_no))
要怎麽给每个list[[i]] 写入资料?
我知道用forloop可以写进去 但感觉蠢翻了...
2.
我的资料长这样
c('A','B','C')
另外有一笔选择资料的matrix
[1,] T,F,F
[2,] F,F,T
[3,] F,T,T
[4,] F,F,F
[5,] T,T,T
想要输出另一个matrix为
[1,] A,NA,NA
[2,] NA,NA,C
[3,] NA,B,C
[4,] NA,NA,NA
[5,] A,B,C
不知道要怎麽写出来?
[程式范例]:
[环境叙述]:
请提供 sessionInfo() 的输出结果,
里面含有所有你使用的作业系统、R 的版本和套件版本资讯,
让版友更容易找出错误
[关键字]:
list, matrix
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.72.3
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1499845094.A.B34.html
1F:→ andrew43: 2 先逐栏把T填成a/b/c,最後所有的F都填成NA就可以了 07/12 17:58
2F:→ andrew43: 1 type要怎麽决定它是属於哪个seq_no先要定义才行 07/12 18:00
其实应该是会变成这样?
> test
[[1]]
[[1]]$seq_no
[1] '0001'
[[1]]$type
[1] "A" "B"
[[2]]
NULL
list里面再一个list再接,我还要再试试,谢谢a大
3F:→ andrew43: 我的意思是,原始type要怎麽分给不同list要先说明。 07/12 22:32
4F:→ andrew43: 因为你说type是一个向量,分配给list并不是一对一的。 07/12 22:33
啊,那麽type应该会是一个list包不同长度的vector的,
这个list长度和seq_no会是一样的
这样的话OK吗?
5F:→ andrew43: 这样应该没问题了。是否把问题按你的说明更新一下? 07/13 00:57
更新了,谢谢~~~
※ 编辑: samex4x4 (60.248.72.3), 07/13/2017 09:27:00