创建一个函数以通过跨另一个变量的级别的算术运算来比较变量的值
creating a function to compare values of a variables via arithmetic operations across levels of another variable
我需要帮助创建一个执行以下操作的函数:
- 创建一个名为
division
的新变量
- 在变量
dT$division
的每一行r_n
中放入dT$result1
对应行r_n
的值除以的结果
dT$result1
的每一行对于 dt$treat == A
的值
- 创建一个名为
operation
的新变量
- 对变量的每一行
operation
执行
dT$operation = (2*(dT$division-1))/(2*(dT$division-1)+1)
其中 r_n
中的 n
是数据框中每一行的编号,并从 1 to N
中取值,N 是观察或行中的总行数数据框。
#样本数据
(注意:编辑以添加变量 id
,这对于创建所需函数至关重要)
dT = read.table(header = TRUE, text = "
id group treat result1
1 0 A 0.1438
2 0 A 0.237
3 0 B 0.2774
4 0 B 0.2774
5 0 B 0.2093
6 0 C 0.1206
7 0 C 0.1707
8 0 C 0.0699
9 0 C 0.1351
10 1 C 0.1206
11 1 A 0.1438
12 1 A 0.237
13 1 B 0.2774
14 1 B 0.2774
15 1 B 0.2093
16 1 C 0.1206
17 1 C 0.1707
18 1 C 0.0699
19 1 C 0.1351
20 1 C 0.1206")
#头输出
(注意:这是为了便于说明概念而选择的原始数据中的随机行样本)
id group treat result1
1 0 A 0.014
2 0 A 0.02
3 0 B 0.20
4 1 A 0.14
5 1 B 0.27
#预期输出
(注意:对于 dT$treat.denominator A2 和 A3,此示例仅显示视觉 - 因为我需要尽快 post 预期输出;这意味着我计算了变量 dT$division 和 dT$operation 的实际值仅适用于 dT$treat.denominator A1)
id group treat result1 treat.numerator treat.denominator division operation
1 0 A 0.01 A1 A1 1.00 0.00
2 0 A 0.02 A2 A1 1.64 0.56
3 0 B 0.20 B3 A1 20.00 0.97
4 1 A 0.14 A4 A1 14.00 0.96
5 1 B 0.27 B5 A1 27.00 0.98
1 0 A 0.01 A1 A2 1.00 0.00
2 0 A 0.02 A2 A2 1.64 0.56
3 0 B 0.20 B3 A2 20.00 0.97
4 1 A 0.14 A4 A2 14.00 0.96
5 1 B 0.27 B5 A2 27.00 0.98
1 0 A 0.01 A1 A3 1.00 0.00
2 0 A 0.02 A2 A3 1.64 0.56
3 0 B 0.20 B3 A3 20.00 0.97
4 1 A 0.14 A4 A3 14.00 0.96
5 1 B 0.27 B5 A3 27.00 0.98
提前感谢您的帮助。
- 创建一个名为 division 的新变量
- 在变量dT$的每一行r_n中放入dT$result1对应行r_n的值除以dT$每一行的值的结果dt$treat == A
的结果 1
第 1 步和第 2 步的答案
division<-dT$result1/dT$result1[dT$treat=="A"]
dT<-cbind(dT,division)
创建一个名为 operation 的新变量
对变量运算的每一行执行dT$operation = (2*(dT$division-1))/(2*(dT$division-1)+1)
3 和 4 的答案
dT$operation<-(2*(dT$division-1))/(2*(dT$division-1)+1)
我需要帮助创建一个执行以下操作的函数:
- 创建一个名为
division
的新变量 - 在变量
dT$division
的每一行r_n
中放入dT$result1
对应行r_n
的值除以的结果dT$result1
的每一行对于dt$treat == A
的值
- 创建一个名为
operation
的新变量
- 对变量的每一行
operation
执行dT$operation = (2*(dT$division-1))/(2*(dT$division-1)+1)
其中 r_n
中的 n
是数据框中每一行的编号,并从 1 to N
中取值,N 是观察或行中的总行数数据框。
#样本数据
(注意:编辑以添加变量 id
,这对于创建所需函数至关重要)
dT = read.table(header = TRUE, text = "
id group treat result1
1 0 A 0.1438
2 0 A 0.237
3 0 B 0.2774
4 0 B 0.2774
5 0 B 0.2093
6 0 C 0.1206
7 0 C 0.1707
8 0 C 0.0699
9 0 C 0.1351
10 1 C 0.1206
11 1 A 0.1438
12 1 A 0.237
13 1 B 0.2774
14 1 B 0.2774
15 1 B 0.2093
16 1 C 0.1206
17 1 C 0.1707
18 1 C 0.0699
19 1 C 0.1351
20 1 C 0.1206")
#头输出
(注意:这是为了便于说明概念而选择的原始数据中的随机行样本)
id group treat result1
1 0 A 0.014
2 0 A 0.02
3 0 B 0.20
4 1 A 0.14
5 1 B 0.27
#预期输出
(注意:对于 dT$treat.denominator A2 和 A3,此示例仅显示视觉 - 因为我需要尽快 post 预期输出;这意味着我计算了变量 dT$division 和 dT$operation 的实际值仅适用于 dT$treat.denominator A1)
id group treat result1 treat.numerator treat.denominator division operation
1 0 A 0.01 A1 A1 1.00 0.00
2 0 A 0.02 A2 A1 1.64 0.56
3 0 B 0.20 B3 A1 20.00 0.97
4 1 A 0.14 A4 A1 14.00 0.96
5 1 B 0.27 B5 A1 27.00 0.98
1 0 A 0.01 A1 A2 1.00 0.00
2 0 A 0.02 A2 A2 1.64 0.56
3 0 B 0.20 B3 A2 20.00 0.97
4 1 A 0.14 A4 A2 14.00 0.96
5 1 B 0.27 B5 A2 27.00 0.98
1 0 A 0.01 A1 A3 1.00 0.00
2 0 A 0.02 A2 A3 1.64 0.56
3 0 B 0.20 B3 A3 20.00 0.97
4 1 A 0.14 A4 A3 14.00 0.96
5 1 B 0.27 B5 A3 27.00 0.98
提前感谢您的帮助。
- 创建一个名为 division 的新变量
- 在变量dT$的每一行r_n中放入dT$result1对应行r_n的值除以dT$每一行的值的结果dt$treat == A 的结果 1
第 1 步和第 2 步的答案
division<-dT$result1/dT$result1[dT$treat=="A"]
dT<-cbind(dT,division)
创建一个名为 operation 的新变量
对变量运算的每一行执行dT$operation = (2*(dT$division-1))/(2*(dT$division-1)+1)
3 和 4 的答案
dT$operation<-(2*(dT$division-1))/(2*(dT$division-1)+1)