作者askpeople (就是要问!!!)
看板R_Language
标题[问题] 请问如何多次复制1笔资料? (求救)
时间Sun Nov 10 14:26:47 2024
[问题类型]:
请把以下不需要的部份删除
意见调查(我对R 有个很棒的想法,想问问大家的意见)
程式谘询(我想用R 做某件事情,但是我不知道要怎麽用R 写出来)
效能谘询(我想让R 跑更快)
经验谘询(我想用R 连接某些资料库,请问大家的经验)
[软体熟悉度]:新手
请把以下不需要的部份删除
新手(没写过程式,R 是我的第一次)
入门(写过其他程式,只是对语法不熟悉)
使用者(已经有用R 做过不少作品)
开发者(有撰写R 的套件经验)
[问题叙述]:小弟希望把一整笔资料x2 (例如35列3行)做N次的复制,不知道该怎麽做?
状况如下:
V1 V2 V3
1 1 1 1
2 1 1 2
3 1 1 8
....
35 10 10 10
#x2的生成方式如下: 就是取1,2,8,9,10这5笔 做重复组合 共35组
x2 <- gtools::combinations(5,3,c1,rep=T)
x2 <- as.data.frame(x2)
#我自己使用到 assign 和 get,程式码如下
#1 先把35列都抓出来
dim(x2)[1] #就是35列
n <- dim(x2)[1]
for (i in 1:n)
{
assign(paste0("d",i),x2[i,])
}
#2 但接下来我希望把d1~d35复制N次 , 假设N=100 不知道怎麽做? 我不知道该怎麽写
回圈 能够帮忙我吗?
我知道要用get 取得资料来合并 但不知道怎麽把d1~d35用get复制100次
(就是d1~d35为1次 有100个d1~d35 共3500列)
请简略描述你所要做的事情,或是这个程式的目的
[程式范例]:
#x2的生成方式如下: 就是取1,2,8,9,10这5笔 做重复组合 共35组
x2 <- gtools::combinations(5,3,c1,rep=T)
x2 <- as.data.frame(x2)
我自己使用到 assign 和 get,程式码如下
#1 先把35列都抓出来
dim(x2)[1] #就是35列
n <- dim(x2)[1]
for (i in 1:n)
{
assign(paste0("d",i),x2[i,])
}
#2 不会写QQ
[环境叙述]: R4.4.2
请提供 sessionInfo() 的输出结果,
里面含有所有你使用的作业系统、R 的版本和套件版本资讯,
让版友更容易找出错误
[关键字]:assign、get、for
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.194.168.241 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1731220009.A.703.html
※ 编辑: askpeople (123.194.168.241 台湾), 11/10/2024 14:27:23
※ 编辑: askpeople (123.194.168.241 台湾), 11/10/2024 14:27:51
※ 编辑: askpeople (123.194.168.241 台湾), 11/10/2024 14:45:16
※ 编辑: askpeople (123.194.168.241 台湾), 11/10/2024 14:45:43
※ 编辑: askpeople (123.194.168.241 台湾), 11/10/2024 14:51:20
1F:→ locka: 假设你的35笔资料是取名叫x2,可以试试以下 11/10 15:19
2F:→ locka: x2[rep(1:35, length.out = 100),] 11/10 15:19
3F:推 studioA: 假设你的资料格式是data.frame ,然後重复资料打算上下重 12/05 04:58
4F:→ studioA: 复合并100次 12/05 04:58
5F:→ studioA: result <- Reduce(rbind, replicate(100, df, simplify 12/05 04:58
6F:→ studioA: = FALSE) 12/05 04:58
7F:→ studioA: df 放你的数据 12/05 04:59