повторное упорядочение столбца чисел на основе заданного значения, R - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть столбец чисел, который нужно упорядочить, начиная с 1, например: столбец с числами: 226 227 227 227 228 228 229 229 ...... так далее

Я бы нравится повторять последовательность так: 226 изменений 1, 227 изменений 2, 227 = 2, 227 = 2, 228 = 3, 228 = 3, 229 = 4, 229 = 4 ....... и т. д.

<html>
<head>
<style>
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 30%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}
</style>
</head>
<body>

<table>
  <tr>
    <th>Current</th>
    <th>Desired</th>
  </tr>
  <tr>
    <td>226</td>
    <td>99</td>
  </tr>
  <tr>
    <td>227</td>
    <td>100</td>
  </tr>
  <tr>
     <td>227</td>
    <td>100</td>
  </tr>
  <tr>
    <td>227</td>
    <td>100</td>
  </tr>
  <tr>
    <td>228</td>
    <td>101</td>
  </tr>
  <tr>
    <td>228</td>
    <td>101</td>
  </tr>
<tr>
    <td>229</td>
    <td>102</td>
  </tr>
<tr>
    <td>229</td>
    <td>102</td>
  </tr>
<tr>
    <td>229</td>
    <td>102</td>
  </tr>

</table>

</body>
</html>

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

Вы можете попробовать as.numeric + factor, как показано ниже, т. Е.

r <- as.numeric(factor(v))

таким, что

> r
[1] 1 2 2 2 3 3 4 4

ДАННЫЕ

v <- c(226, 227, 227, 227, 228, 228, 229, 229)
0 голосов
/ 16 февраля 2020

Мы можем вычесть min imum или first элемент 'Current', а затем добавить к нему 99

df1$Desired <- df1$Current - df1$Current[1] + 99
df1$Desired
#[1]  99 100 100 100 101 101 102 102 102

Или, если его необходимо повторно упорядочить из 1

df1$Current - df1$Current[1] + 1

Или используйте match

match(df1$Current, unique(df1$Current))

data

df1 <- data.frame(Current = c(226, 227, 227, 227, 228, 228, 229, 229, 229))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...