【发布时间】:2017-01-19 23:21:38
【问题描述】:
给定数据排列在这样的数据框中:
x1<-c(1,2,3,4,5)
x2<-c(10,9,8,7,6)
x3<-c(9,2,8,3,7)
x4<-c(2,5,3,4,8)
data<-data.frame(x1, x2, x3, x4)
我想编写一个循环,使用前一个变量对每个变量进行比率。输出应如下所示:
r_x2_x1<-x2/x1
r_x3_x1<-x3/x1
r_x4_x1<-x4/x1
r_x3_x2<-x3/x2
r_x4_x2<-x4/x2
r_x4_x3<-x4/x3
ratios<-data.frame(r_x2_x1, r_x3_x1, r_x4_x1, r_x3_x2, r_x4_x2, r_x4_x3)
我想编写一个循环,按上面显示的顺序对变量进行比率,并且无论数据框中的变量数量如何都可以工作。我还希望输出列名包含一些指示过程中使用了哪些变量的指示(即 r_x2_x1 是我用来表示 2/1 比率的标准格式)。变量并不总是 x1、x2、x3;它们可以是任何数字(通常与 x 配对)。
我之前写过简单的“for i in...”循环,但我什至不知道从哪里开始。我认为应该有一种方法可以说“从这个变量开始,将它分成剩余的变量,写一个数据框”,但我不知道如何将它限制为仅非互易比率(即如果我有 x2/ x1. 我不需要 x1/x2)。限制它很重要,因为其中一些集合有多达 18-20 个变量。如果数据集包含所有可能的比率,那么仅查找我需要的比率会浪费大量时间。
非常感谢您提供的任何帮助!
【问题讨论】:
标签: r