У меня очень большой фрейм данных из 63 столбцов и 1697 строк. Конец строк заполняется NA, но я хочу, чтобы совпадающие значения в строках находились в одном столбце, и вставляю NA в промежутки
примерно так (обновлено):
v1 <- c("v1","v1","v1","v1","v1","v1","v1")
v2 <- c("v3","v2","v2","NA","v2","v2","v2")
v3 <- c("v4","v4","v3","NA","v3","v3", "v3")
v4 <- c("v5","v5","v4","NA","v5","v4","NA")
v5 <- c("NA","NA","v5","NA","v6","v6", "NA")
v6 <- c("NA","NA","v6","NA","v7","v7","NA")
v7 < - c("NA","NA","NA","NA","NA","NA","NA")
df <- data.frame(v1,v2,v3,v4,v5,v6,v7)
df
v1 v2 v3 v4 v5 v6 v7
1 v1 v3 v4 v5 NA NA NA
2 v1 v2 v4 v5 NA NA NA
3 v1 v2 v3 v4 v5 v6 NA
4 v1 NA NA NA NA NA NA
5 v1 v2 v3 v5 v6 v7 NA
6 v1 v2 v3 v4 v6 v7 NA
7 v1 v2 v3 NA NA NA NA
но я бы хотел, чтобы все выровнялось следующим образом:
v1 v2 v3 v4 v5 v6 v7
1 v1 NA NA v4 v5 NA NA
2 v1 v2 NA v4 v5 NA NA
3 v1 v2 v3 v4 v5 v6 NA
4 v1 NA NA NA NA NA NA
5 v1 v2 v3 NA v5 v6 v7
6 v1 v2 v3 v4 NA v6 v7
7 v1 v2 v3 NA NA NA NA
Я пробовал map.values (), и это не получилось, как ожидалось, а также ifelse (), но это всетребует, чтобы я ввел конкретные данные ячейки и изменил их.
Имена столбцов совпадают с именами ячеек.
Я хочу использовать данные, чтобы поместить их в график отсутствия присутствия, поэтому я решил, что послеЯ могу просто
for (i in 1:63){
gsub("NA", 0, df[,i]}
и то же самое для всего, что содержит «v», иметь двоичный 1 или 0 для присутствия или отсутствия, но они должны быть выровнены
Нет предопределенных правилУправляя данными, фрейм данных был объединен из многих других файлов .csv, и это лучший формат, в котором я могу получить его в настоящее время.
Буду признателен за любую помощь!