楼主: myohmy88
5777 5

[问答] 如何将每次循环的结果输出? [推广有奖]

  • 0关注
  • 0粉丝

高中生

5%

还不是VIP/贵宾

-

威望
0
论坛币
15 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
77 点
帖子
12
精华
0
在线时间
26 小时
注册时间
2015-3-18
最后登录
2017-4-14

楼主
myohmy88 发表于 2016-12-7 09:35:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我自定义了一个函数,代码如下:test.sum<-function(x,z){y<-x+z}
for(z in 1:5){
for(x in 1:z){
y<-test.sum(x,z)
a<-list(x=x,z=z,y=y}}
我想将结果输出为三列,分别是x,z,y。可是结果至显示最后一次循环的结果。求问各位大神,代码应该怎样修改?
二维码

扫码加我 拉你入群

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

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

关键词:结果输出 test Sum Est 自定义 如何

沙发
nuomin 发表于 2016-12-7 10:01:42
你这种写法是C语言风格的。R语言风格是写成向量函数形式:
sapply(X=1:5,FUN=function(x) sapply(X=1:x,FUN=function(z) list(x=x,z=z,y=x+z)))
利用向量函数的返回值是整体返回的特点。
已有 1 人评分论坛币 收起 理由
admin_kefu + 20 热心帮助其他会员

总评分: 论坛币 + 20   查看全部评分

藤椅
myohmy88 发表于 2016-12-7 10:29:07
nuomin 发表于 2016-12-7 10:01
你这种写法是C语言风格的。R语言风格是写成向量函数形式:
sapply(X=1:5,FUN=function(x) sapply(X=1:x,FU ...
这样会输出好几个矩阵。不能输出为列表形式或数据框形式吗?因为我想对y的部分结果进行累加求和。

板凳
shenyunR 发表于 2022-8-9 16:52:37
我也想知道

报纸
abelus 发表于 2022-8-10 12:45:43
  1. #
  2. ta <- data.frame(x = 1:5)
  3. tb <- data.frame(z = 1:5)
  4. sqldf("SELECT x, z, x + z AS y
  5.       FROM ta CROSS JOIN tb
  6.       WHERE x <= z")
  7. #
  8. dta <- data.frame(x = rep(1:5, each = 5), z = rep(1:5, times = 5))
  9. dta$y <- dta$x + dta$z
  10. dta[dta$x <= dta$z, ]
复制代码


地板
abelus 发表于 2022-8-10 12:50:56
还有一种看起来“高大上”点的方法
  1. #
  2. map(1:5, function(x) {
  3.   z <- 1:x
  4.   y <- x + z
  5.   data.frame(x, y, z)
  6. }) %>% reduce(rbind)
复制代码

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-31 12:28