请参阅dplyr中列的特定值
这个答案就在某个地方,但我很难把它说清楚 我想用请参阅dplyr中列的特定值,r,dplyr,R,Dplyr,这个答案就在某个地方,但我很难把它说清楚 我想用dplyr框架引用向量的子集。最好用一个例子来解释 我在计算一个叫做“Delta E”的东西 这要求我在本例中引用一行(称为“控件”) 我试图找到在data.frame的列中引用特定值的方法 以下是示例数据: df <- read.table(text=" sampleID L a b control 54.1 32.5 85.6 A 51.7 34.2 83.3 B 5
dplyr
框架引用向量的子集。最好用一个例子来解释
我在计算一个叫做“Delta E”的东西
这要求我在本例中引用一行(称为“控件”)
我试图找到在data.frame的列中引用特定值的方法
以下是示例数据:
df <- read.table(text="
sampleID L a b
control 54.1 32.5 85.6
A 51.7 34.2 83.3
B 53.7 32.8 85.0
D 53.8 32.7 85.1", header=T)
其中,
Lc=54.1
、ac=32.5
和bc=85.6
与对照样本相对应。这不是非常漂亮,但你可以做到
df %>%
mutate(deltaE = sqrt((L[sampleID=="control"] - L)^2 +
(a[sampleID=="control"] - a)^2 +
(b[sampleID=="control"] - b)^2))
或者把它分成几个步骤
df %>%
mutate(isControl = sampleID=="control",
Lc = L[isControl],
ac = a[isControl],
bc = b[isControl]) %>%
mutate(deltaE = sqrt((Lc - L)^2 +
(ac - a)^2 +
(bc - b)^2)) %>%
select(-isControl, -Lc, -ac, -bc)
df %>%
mutate(isControl = sampleID=="control",
Lc = L[isControl],
ac = a[isControl],
bc = b[isControl]) %>%
mutate(deltaE = sqrt((Lc - L)^2 +
(ac - a)^2 +
(bc - b)^2)) %>%
select(-isControl, -Lc, -ac, -bc)