如何将数据X转换为Y,如
X = data.frame(
ID = c(1,1,1,2,2),
NAME = c("MIKE","MIKE","MIKE","LUCY","LUCY"),
SEX = c("MALE","MALE","MALE","FEMALE","FEMALE"),
TEST = c(1,2,3,1,2),
SCORE = c(70,80,90,65,75)
)
Y = data.frame(
我试图从长到宽重新塑造数据集。下面的代码可以工作,但我很好奇是否有一种方法可以不提供值列,而仍然使用pivot_wider。在下面的示例中,我必须创建一个临时列"val“才能使用pivot_wider,但是没有它,有什么方法可以做到吗?
a <- data.frame(name = c("sam", "rob", "tom"),
type = c("a", "b", "c"))
a
name type
1 sam a
2 rob b
我一直在努力通过使用最后一个元素来使dcast聚合。下面是一个例子:
x <- data.table::data.table(foo = "bar", value = c(1, 0))
x
# foo value
# 1: bar 1
# 2: bar 0
data.table::dcast(x, ... ~ foo, fun.aggregate = function(x) x[length(x)])
# Error: Aggregating function(s) should take vector inputs and return a s
我被一个R数据争论的问题困住了。我有一个数据框架(df),如下所示:
loc lat long group 1 loc1 47.69119 -91.85776 A 2 loc1 47.69119 -91.85776 B 3 loc1 47.69119 -91.85776 C 4 loc2 46.41079 -86.64089 C 5 loc2 46.41079 -86.64089 C 6 loc2 46.41079 -86.64089 C 7 loc3
有了这些数据
d <- data.frame(time=1:5, side=c("r","r","r","l","l"), val = c(1,2,1,2,1))
d
time side val
1 1 r 1
2 2 r 2
3 3 r 1
4 4 l 2
5 5 l 1
我们可以像这样展开到一个整洁的数据帧中:
library(tidyverse)
d %>% spread(side,val)
这就给出了:
我有张桌子看起来像这样:
ID YEAR SOURCE VALUE
1 2014 AV 15
1 2014 OV 25
1 2015 AV 87
2 2014 AX 44
2 2015 AZ 32
2 2015 NL 2
3 2011 OV 104
我想要重新构造表,以提供一个新列,在该列中,从源AV、AX和NL提供的值被求和,而另一列则提供
我正在使用dcast函数在library(reshape2)包中转换一个简单的三列表
df = data.table(id = 1:1e6,
var = c('continent','subcontinent',...),
val = c('America','Caribbean',...)````
由dcast(df, id ~ var, value.var ='val')自动将值转换为计数,即
id continent subcontinen
我有以下数据表
dt<-data.table(string=c("A","A","A","B","B","C"), source=c("a","b","c","a","b","a"), N=rep(1,6))
string source N
1: A a 1
2: A b 1
3: A c 1
4: B
DT <- data.table(id = rep(1:3, 2),
class = rep(letters[1:6]),
des = rep(LETTERS[1:2], 3))
看起来是这样的:
id class des
1: 1 a A
2: 2 b B
3: 3 c A
4: 1 d B
5: 2 e A
6: 3 f B
问题是,我需要将每个id中的变量类的不同值(字符串类型)堆叠成一行,也就是说,如何将该dat
抱歉,如果这个问题已经被问过了,如果标题非常混乱。我确实查看了一下,但只发现了关于重整的问题,其中一列的值被用作输出数据集中的列标题。
我的dataset经过组织,因此筛选器是每行的唯一值。我想要更改它,以便每个采样季节内的个体id对于每一行都是唯一的,因为个体具有多个过滤器。基本上,我想重新格式化表1,使其看起来像表2。
Table 1
id season FilterI
1: 1 1 A
2: 1 1 B
3: 2 1 C
4: 2 1 D