2016-09-17 2 views
1
m <- lm(Sepal.Length ~ Sepal.Width + Petal.Width, data = iris) 
beta = dfbetas(m) 
> head(beta) 
    (Intercept) Sepal.Width Petal.Width 
1 -0.0018633253 0.0054762565 -0.0096031648 
2 0.0094916858 -0.0062007468 -0.0137816086 
3 -0.0221770886 0.0069280848 0.0540485812 
4 -0.0408776612 0.0219247324 0.0731671391 
5 0.0071436202 -0.0134636336 0.0150509697 
6 0.0006264958 -0.0007979264 0.0001755277 


apply(data.frame(beta), 2, function(x) which(abs(x) < 0.1632993)) 

У меня есть матрица с именем beta, которая содержит 3 столбца. После преобразования его в тип data.frame я хотел найти индексы, используя функцию наблюдений which, абсолютные значения которых составляют < 0,1632993. По сути, я хочу список индексов для каждого столбца. Но моя применимая функция, похоже, не делает того, что я хотел.R: поиск индексов столбцов в data.frame

+0

Это может быть в любом формате, до тех пор, как он говорит мне, какие наблюдения (s) отвечают мой критерий 'абс (значение) <0.1632993' для КАЖДОГО столбца моего data.frame. – Adrian

+0

'' '' '' 'arr.ind = TRUE' дает индекс строки/столбца – akrun

ответ

1

Мы можем использовать which с arr.ind=TRUE по всему набору данных, чтобы получить row/column индексы

which(abs(beta) < 0.1632993, arr.ind=TRUE)