【发布时间】:2020-02-10 17:53:07
【问题描述】:
这个问题听起来有点笼统,但我认为举个例子会更清楚:
我有以下两个数据框
数据1
group1 group2 group3 Level
cat cat dog 1
dog parrot cat 1
mouse dolphin dolphin 1
red blue blue 2
green yellow green 2
black purple cat 2
数据2
var1 level Score
cat 1 1
dog 1 1
mouse 1 1
dolphin 1 0
parrot 1 1
red 2 1
blue 2 1
green 2 1
purple 2 1
cat 2 0
black 2 0
yellow 2 1
我想修改包含 3 个新列(每个 group1、group2 和 group3 一个)的 data1,其值取决于我在 data2 的“score”列中找到的值,具体取决于“level”的级别(级别是一个因素)。所以基本上我想获得这样的东西:
group1 group2 group3 Level var1 var2 var3
cat cat dog 1 1 1 1
dog parrot cat 1 1 1 1
mouse dolphin dolphin 1 1 0 0
red blue blue 2 1 1 1
green yellow green 2 1 1 1
black purple cat 2 0 1 0
样本数据
df1 <- structure(list(
group1 = c("cat", "dog", "mouse", "red", "green", "black"),
group2 = c("cat", "parrot", "dolphin", "blue", "yellow", "purple"),
group3 = c("dog", "cat", "dolphin", "blue", "green", "cat"),
Level = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("1", "2"), class = "factor")),
row.names = c(NA, -6L), class = "data.frame")
df2 <- structure(list(
var1 = c("cat", "dog", "mouse", "dolphin", "parrot", "red", "blue", "green", "purple", "cat", "black", "yellow"),
level = structure(c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("1", "2"), class = "factor"),
Score = c(1L, 1L, 1L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 1L)),
row.names = c(NA, -12L), class = "data.frame")
【问题讨论】:
-
@akrun:好点,我改了
-
@Darren Tsai:应该的,我无意中写的不一样
-
@Darren Tsai :另一个错误,我在 data2 中包含黄色:基本上数据 2 是从 data1 + 手动完成的变量 Score 创建的:输出显示返回表 1 格式匹配的意图每组的变量分数
标签: r