Правило проверки для сравнения дубликатов по нескольким полям в доступе [дубликат]

Функция base reshape работает отлично:

df <- data.frame(
  year   = c(rep(2000, 12), rep(2001, 12)),
  month  = rep(1:12, 2),
  values = rnorm(24)
)
df_wide <- reshape(df, idvar="year", timevar="month", v.names="values", direction="wide", sep="_")
df_wide

Здесь idvar - столбец классов, который разделяет строки, timevar - столбец классов, который должен быть широко представлен, v.names - это столбец, содержащий числовые значения, direction указывает широкий или длинный формат, а необязательный аргумент sep - это разделитель, используемый между именами классов timevar и v.names на выходе data.frame. Если нет idvar, создайте его перед использованием функции reshape():

df$id   <- c(rep("year1", 12), rep("year2", 12))
df_wide <- reshape(df, idvar="id", timevar="month", v.names="values", direction="wide", sep="_")
df_wide

Просто помните, что требуется idvar! Часть timevar и v.names проста. Выход этой функции более предсказуем, чем некоторые другие, поскольку все явно определено.

24
задан MaDa 20 January 2012 в 13:33
поделиться

4 ответа

Откройте таблицу в режиме проектирования в MS Access, выберите три столбца, которые вы хотите внести в уникальный индекс, а затем нажмите маленькую клавишу на панели инструментов. Вы не можете иметь нулевые значения в первичном ключе (set).

7
ответ дан Fionnuala 23 August 2018 в 00:30
поделиться
  • 1
    Нулевая проблема имеет решающее значение - если какое-либо из полей может быть Null, то вы не можете обеспечить уникальность в индексе (потому что никакие два Nulls никогда не равны, две записи с 5 одинаковыми полями и 6-е поле Null в обоих не будут считаются дублирующими). – David-W-Fenton 25 January 2010 в 01:43
  • 2
    Этот ответ прав. Но кто-то должен сказать Нику, что то, что он действительно ищет, является уникальным CONSTRAINT, а не уникальным индексом. Если он создаст многоколоночное ограничение PK, он получит вместе с ним многоколоночный уникальный индекс. Но индекс - всего лишь инструмент. Логическая функция, которую он ищет, - это ограничение. – Walter Mitty 25 January 2010 в 08:43
  • 3
    @Walter Mitty Я думаю, что вы правы - см. Комментарий к моему ответу. – Nick Bolton 25 January 2010 в 11:44
  • 4
    В Access через интерфейс пользователя нет возможности создать ограничение UNIQUE - это можно сделать только через DAO или DDL. – David-W-Fenton 25 January 2010 в 21:27
  • 5
    Вот как создать первичный ключ в MSAccess .... это уникальный индекс, но это не способ создать уникальный индекс для любых полей. Если вам не нужен первичный ключ для чего-либо еще, это может решить проблему для одного уникального индекса. Но ответ от @Ilmari Karonen гораздо более очевиден. – Mike M 30 November 2015 в 07:15

Мы можем сделать несколько данных уникальными данными, не задавая их как первичный ключ.

(Примечание: только 1 данные в таблице могут быть первичными)

Шаг для установки значения данных как уникальных данных (для MS ACCESS 2007 - 2010)

  1. Открыть выбранную таблицу в Design View
  2. Нажмите (Выделите) конкретный столбец / атрибут, который вы хотите установить как уникальный
  3. В нижней части таблицы вы увидите «Свойства индекса» для этого конкретного столбца
  4. Найдите столбец «Индексированный», в настоящее время данные в индексированном текстовом поле «Нет», измените данные, щелкнув в конце текстового поля, выберите «Да (Нет Дубликаты) «

Надеюсь, эти методы помогут всем вам! :)

0
ответ дан finazrosli 23 August 2018 в 00:30
поделиться
  • 1
    Это работает только для отдельных столбцов. Возникает вопрос о нескольких столбцах. – Andre 11 November 2015 в 08:52
  • 2
    @ Andre451 вы можете использовать этот метод для нескольких столбцов Andre. Просто установите этот метод для каждого столбца, который вы хотите установить как уникальный. Вы пытаетесь установить более чем одну колонку? Потому что это моя работа. – finazrosli 12 November 2015 в 08:41
  • 3
    Да, конечно, вы можете установить уникальный индекс для нескольких столбцов отдельно. Но вопрос заключается в настройке единого уникального индекса, который охватывает несколько столбцов. – Andre 12 November 2015 в 08:47

Оказывается, вы можете создать уникальный столбец с несколькими столбцами в базе данных доступа MS, но это немного сумасшествие, если вы хотите сделать это через графический интерфейс. Существует также ограничение; вы можете использовать только 10 столбцов на индекс.

В любом случае, вот как вы создаете уникальный уникальный столбец с несколькими столбцами в базе данных доступа MS.

  1. Откройте таблицу в режиме разработки , и Design, выберите Indexes.
  2. Создайте новую строку и введите значение в ячейке Index Name,
  3. Выберите первый столбец из выпадающего меню.
  4. Добавьте новую строку и оставьте поле «Название индекса» пустым.
  5. Выберите второй столбец и т. д.

Вот как это должно выглядеть:

41
ответ дан Ilmari Karonen 23 August 2018 в 00:30
поделиться
  • 1
    Хм, по какой-то причине это делает Foo уникальным по своему праву, а не в сочетании с Foo, Bar и т. Д. Мне нужно разрешить ("a", "b", "c", "d") только один раз, но также разрешить ("x", "b", "c", "d") - и эта компоновка индексов, похоже, не позволяет этого, потому что последние 3 значения уже существуют. – Nick Bolton 24 January 2010 в 23:41
  • 2
    @Remou дал вам более простой способ сделать это, т. Е. Выбрать несколько строк и нажать кнопку PK на панели инструментов. Это кажется мне довольно интуитивным, так как это GUI способ настроить любой первичный ключ. – David-W-Fenton 25 January 2010 в 01:44
  • 3
    @ Дэвид-У-Фентон, как сказал Рему. – Nick Bolton 25 January 2010 в 11:45
  • 4
    Ха, пожалуйста, отбросьте мой первый комментарий! Я просто попробовал это снова сегодня, и он работает так, как ожидалось. Не совсем уверен, что я делал неправильно вчера. – Nick Bolton 25 January 2010 в 12:15
  • 5
    отличный совет, спасибо! – murison 23 June 2015 в 10:25

Он будет служить уникальным ключом в Ms Access 2007/2010

-1
ответ дан Md Shahriar 23 August 2018 в 00:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: