不确定如何弄清楚这一点。将因子变量相对于另一行移动一行
下面是一个简单的数据集:
Bob <- sample("Bob", 6, replace = T)
Jeff <- sample("Jeff", 6, replace = T)
Carl <- sample("Carl", 6, replace = T)
Name <- array(c(Bob, Jeff, Carl), dim = c(18,1))
Week <- c("Week 1", "Week 2", "Week 3", "Week 4", "Week 5", "Week 6",
"Week 1", "Week 2", "Week 3", "Week 4", "Week 5", "Week 6",
"Week 1", "Week 2", "Week 3", "Week 4", "Week 5", "Week 6")
variable.1 <- c("No", "No", "No", "Yes", "No", "No",
"Yes", "No", "No", "No", "Yes", "No",
"No", "Yes", "No", "No", "No", "Yes")
df <- data.frame(Name, Week, variable.1)
df
Name Week variable.1
1 Bob Week 1 No
2 Bob Week 2 No
3 Bob Week 3 No
4 Bob Week 4 Yes
5 Bob Week 5 No
6 Bob Week 6 No
7 Jeff Week 1 Yes
8 Jeff Week 2 No
9 Jeff Week 3 No
10 Jeff Week 4 No
11 Jeff Week 5 Yes
12 Jeff Week 6 No
13 Carl Week 1 No
14 Carl Week 2 Yes
15 Carl Week 3 No
16 Carl Week 4 No
17 Carl Week 5 No
18 Carl Week 6 Yes
我所试图做的是移动任何在variable.1列了一排“是”,以便它可以反映为一个因子变量在一周前的信息。我试图由个人来完成(而不是整个数据集)。当两个变量都是因素时,我无法弄清楚解决这个问题的最佳方法。理想情况下,我想要出现一个NA。我不想让所有的东西都简单地向上移动。我只想让一个NA出现在“是”的地方,并让它覆盖它上面的“否”。
所以,我非常喜欢的成品厕所像“New.Col”下面:
Name Week variable.1 New.Col
1 Bob Week 1 No No
2 Bob Week 2 No No
3 Bob Week 3 No Yes
4 Bob Week 4 Yes NA
5 Bob Week 5 No No
6 Bob Week 6 No No
7 Jeff Week 1 Yes NA
8 Jeff Week 2 No No
9 Jeff Week 3 No No
10 Jeff Week 4 No Yes
11 Jeff Week 5 Yes NA
12 Jeff Week 6 No No
13 Carl Week 1 No Yes
14 Carl Week 2 Yes NA
15 Carl Week 3 No No
16 Carl Week 4 No No
17 Carl Week 5 No Yes
18 Carl Week 6 Yes NA
什么你想要发生像(杰夫,第1周,是)的情况吗? –
啊,好问题。抱歉不说。将更新我的文章。理想情况下,我想要出现一个NA。我不想让所有的东西都简单地向上移动。我只想让一个NA出现在“是”的地方,并让它覆盖它上面的“否”。 – user3585829
我还是有点困惑。你可以给你想要这个例子的新列是什么吗? –