考虑数据:
set.seed(123)
x <- rbinom(12, 1, .5)
y <- (x==0) * rexp(12, 1/100)
z <- (x==1) * rexp(12, 1/220)
group <- sample( rep(1:2, each=6) )
d <- data.frame(x, y, z, group)
首先按y
排序数据,然后按z
d <- d[order(d$y,d$z),]
现在在每个小组中,我想给予排名。以下代码可以正常工作:
ds <- split(d, d$group)
ds1 <- ds[[1]]
ds1$rank <- 1:nrow(ds1)
ds2 <- ds[[2]]
ds2$rank <- 1:nrow(ds2)
但是如果没有拆分数据框,我想在每个组中排名。我怎么能这样做?
答案 0 :(得分:2)
<?php
require("config.php");
$id = $_GET['id'];
$sql = "SELECT * FROM contracts WHERE id= '$id'";
$result = $con->query($sql);
while ($row = $result->fetch_assoc())
{
$subunit = explode(',',$row['subunit']);
?>
<form action="" method="GET">
ID: <?php echo $id; ?><br>
<input type="hidden" name="id" value="<?php echo $id; ?>" />
Sub-Category Unit:
<input type="checkbox" name="subunit[]" value="OFL" <?php in_array('OFL', $subunit) ? print "checked" : ""; ?>>OFL
<input type="checkbox" name="subunit[]" value="HVTL" <?php in_array('HVTL', $subunit) ? print "checked" : ""; ?>>HVTL
<input type="checkbox" name="subunit[]" value="PINS" <?php in_array('PINS', $subunit) ? print "checked" : ""; ?>>PINS
<input type="checkbox" name="subunit[]" value="FEG" <?php in_array('FEG', $subunit) ? print "checked" : ""; ?>>FEG
<input type="checkbox" name="subunit[]" value="PC" <?php in_array('PC', $subunit) ? print "checked" : ""; ?>>PC
<input type="checkbox" name="subunit[]" value="PI" <?php in_array('PI', $subunit) ? print "checked" : ""; ?>>PI<br>                              
Others:
<input type="text" name="subunit[]" value="<?php echo $row['subunit']; ?>"/>
<br><br>
<input type="submit" name="edit" value="Update" />
</form>
<?php
}
if(isset($_GET['edit']) ){
$subunit = isset($_GET ['subunit']) ? implode(",", $_GET['subunit']) :null;
$upd= "UPDATE `contracts` SET `subunit` = '$subunit' WHERE `id` = '$id'";
if($do_upd = $con->query($upd)) {
echo "Update Success<br>";
echo "$upd <br>";
echo "$do_upd <br>";
echo "<a href='viewcheck.php?id=$id'>View</a>";
} else {
echo "Update Fail<br>";
echo "$upd <br>";
echo "$do_upd <br>";
echo "<a href='viewcheck.php?id=$id'>View</a>";
}
}
?>
方式:
dplyr
我们首先按library(dplyr)
d %>%
arrange(group, y, z) %>%
group_by(group) %>%
mutate(rank = 1:n()) %>%
ungroup()
然后group
然后y
对data.frame进行排序,然后将其分组为z
,然后为每个观察分配排名。
结果:
group
答案 1 :(得分:1)
以下是使用orig = "hbeojllok"
的选项。我们首先base R
基于'group','y','z'列的数据集,然后使用order
按'group'创建序列
ave