Как извлечь и записать в файл все строки в одном столбце на одно уникальное значение строки в другом столбце?

мои данные выглядят так:

      V1      V2      V3          V4 V5 V6              V7
1: chr11 9554978 9554979 rs114731977  0  + ENSG00000133789
2: chr11 9554978 9554979 rs374765884  0  + ENSG00000133789
3: chr11 9554977 9554979 rs796467675  0  + ENSG00000133789
4: chr11 9554976 9554979 rs796841057  0  + ENSG00000133789
5: chrX 15148554 15148555 rs2317411  0  - ENSG00000130150
6: chrX 15148775 15148776 rs2317410  0  - ENSG00000130150
...

я хочу получить (скажем, для этого примера) два файла, каждый из которых содержит набор значений rs из $ V4 для уникального значения в $ V7

нравится:

ENSG00000133789.txt:

rs114731977
rs374765884
rs796467675
rs796841057

ENSG00000130150.txt:

rs2317411
rs2317410

некоторые вещи, которые я пытался получить эти значения:

data%>%group_by(V7) %>% summarise() 
distinct_df = data %>% distinct(V7) %>% select(V7)

и они возвращают мне только столбец за 7 долларов

Я тоже пробовал это:

awk -F' ' 'FNR==NR{a[$7]++;next} a[$7]==1'  SG_ALL SG_ALL >ss

SG_ALL - это место, где находятся данные, входной файл, 2 раза я читаю в первый раз, он берет количество строк и сохраняет их в массиве, а второй раз выполняет условие, если счетчик равен 1, он должен печатать строку только тогда

Но на выходе я получаю только одну строку:

chr13 41545705 41545706 rs12429969 0 + ENSG00000150907
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
43
2

Ответы 2

это решило мою проблему:

awk -F '' '{f = $ 7 ".txt"; print $ 4 >> f; закрыть (f)} 'OFS =' 'SG_ALL

Вот вариант использования tidyverse:

library(tidyverse)

# Generate a data frame containing V4 and V7
df <- data.frame(
  V4 = paste0(
    'rs',
    str_pad(
      sample(1:10e6, 3),
      width = 6,
      side = 'left',
      pad = '0'
    )
  ),
  V7 = rep(
    paste0(
      'ENSG',
      str_pad(
        sample(1:5000, 4),
        width = 10,
        side = 'left',
        pad = '0'
      )
    ),
    12
  )
)

# Generate unique V7
unique_V7 <- df %>% select(
  V7
) %>% unique() %>% pull()

# Write V4 for each (unique) V7
for (cur_V7 in unique_V7) {
  df %>% filter(
    V7 == cur_V7
  ) %>% select(
    V4
  ) %>% write_csv(
    path = paste0(
      cur_V7, '.txt' # filename
    ),
    col_names = FALSE
  )
}

Другие вопросы по теме