2013-06-11 3 views
1

Это, по-видимому, простой вопрос, но я не смог найти ответ. Я хочу удалить столбец данных, который находится внутри списка.Манипулировать фрейм данных внутри списка

x1<- rnorm(100,0,1) 
x2<- rnorm(100,0,1) 
x3<- rnorm(100,0,1) 
x4 <- rnorm(100,0,1) 

df1 <- data.frame(x1,x2,x3) 
df2 <- data.frame(x4) 

l1 <- list(df1,df2) 

l1[1] 

data.frame(l1[1])[,-1] 

l1[1] <- data.frame(l1[1])[,-1] 

Рассмотрим пример, в котором два dataframes, df1 и df2, находятся в списке, l1. Я хочу удалить столбец x1 из df1. Это тривиально, если это всего лишь фрейм данных. Но один раз в списке я не уверен, как манипулировать этим фреймворком данных. Когда я пытаюсь перезаписать его в последнем утверждении, я получаю сообщение об ошибке.

Моя фактическая проблема имеет около 100 данных в списке, а около 10% из них имеют дополнительный столбец, который мне нужно удалить. Я могу легко идентифицировать их с помощью краткого утверждения, но я не знаю, как ими манипулировать.

Спасибо!

ответ

3

Вместо

l1[1] <- data.frame(l1[1])[,-1] 

использования

l1[[1]] <- data.frame(l1[1])[,-1] 
+3

Важным отличием здесь в том, что '[[' доступ _elements_ из списка, в то время как '[' обращается к _sub-list_. – joran

+0

Большое спасибо joran и user2194122! –

Смежные вопросы