我有一个现有的数据集表。例如,该表称为Table1
V1 V2 V3
1 S301 OR 1575.3078990
2 S301 AND 1006.5031070
3 S301 OR 938.3647756
4 S302 OR 1106.0894270
5 S302 AND 1239.9842820
6 S302 OR 885.3624568
我希望将此表重组为一个新表,其中列V2被拆分为'并且'和'或'列,值为
所有'和'的平均值对于表1中的S301,'和'列
并且意味着所有' OR'对于表1中的S301,在'或列'。
我一直在努力解决这个问题,所以任何帮助都会非常感激!非常感谢你们。
答案 0 :(得分:0)
你说你有一个现有的“数据集表”。这不是R中的类型。我假设你的意思是data.table。
library(data.table)
theDT <- data.table(matrix(c(rep("S301", 3), rep("S302", 3),
c("OR", "AND", "OR", "OR", "AND", "OR",
1575.3, 1006.5, 938.4, 1106.1, 1240, 885.4)),
ncol = 3))
theDT$V3 <- as.numeric(theDT$V3)
> theDT
V1 V2 V3
1: S301 OR 1575.3
2: S301 AND 1006.5
3: S301 OR 938.4
4: S302 OR 1106.1
5: S302 AND 1240.0
6: S302 OR 885.4
然后你的回答是
> theDT[, mean(V3), by = c("V1","V2")]
V1 V2 V1
1: S301 OR 1256.85
2: S301 AND 1006.50
3: S302 OR 995.75
4: S302 AND 1240.00
答案 1 :(得分:0)
要将AND和OR列分开,您可以这样做。
dat.1 <- aggregate(V3~V2+V1,data=dat, mean)
dat.2 <- reshape(m, direction='wide', idvar='V1', timevar='V2')
names(dat.2) <- c('ID', 'AND', 'OR')
dat.1看起来像这样
V2 V1 V3
1 AND S301 1006.5031
2 OR S301 1256.8363
3 AND S302 1239.9843
4 OR S302 995.7259
dat.2最终看起来像这样:
ID AND OR
1 S301 1006.503 1256.8363
3 S302 1239.984 995.7259