2014-04-18 4 views

답변

19

필자는 칼럼의 이름이 주어지면 데이터 프레임에서 변수의 평균을 계산하는 방법을 묻고 있다고 생각합니다. [[[이 하나의 인덱싱 및 다른 인덱싱을하는 두 가지 일반적인 방법이 있습니다

data(iris) 
mean(iris[["Petal.Length"]]) 
# [1] 3.758 
mean(iris[,"Petal.Length"]) 
# [1] 3.758 
mean(iris[["Sepal.Width"]]) 
# [1] 3.057333 
mean(iris[,"Sepal.Width"]) 
# [1] 3.057333 
6

다음 중 하나가 작동해야는!

df <- data.frame(x=1:3,y=4:6) 

mean(df$x) 
mean(df[,1]) 
mean(df[["x"]]) 
2

난 당신이하도록 요청되고 있는지 생각 (자신을 물어 또는 아마도?) 특정 dataframe의 열 이름과 일치하는 문자 값을이다 (아마도 또한 문자로 주어진). 여기에는 두 가지 트릭이 있습니다. 대부분의 사람들은 "$"연산자로 열을 추출하는 법을 배우며 함수가 문자 vecor를 전달하면 함수 내에서 작동하지 않습니다. 함수가 아니라 문자 인수를 허용하도록되어 경우에 당신은뿐만 아니라 get 기능을 사용해야합니다

df1 <- data.frame(a=1:10, b=11:20) 
mean_col <- function(dfrm, col) mean(get(dfrm)[[ col ]]) 
mean_col("df1", "b") 
# [1] 15.5 

개체의 이름과 같은 문자 벡터 및 언어 객체와 같은 일반 객체 사이의 의미 적 경계의 종류가있다 . get 함수는 문자 값을 언어 수준 평가로 "승격"시키는 함수 중 하나입니다. 그리고 "$"함수는 함수에서 인수를 평가하지 않으므로 "[[". "$"는 콘솔 레벨에서만 유용하며 기능에서 완전히 피해야합니다.

1

하기는 열 (DF 말), 데이터 프레임을 가정 "X"과, 사용 컬럼 (X 또는 Y)의 의미 찾을 수 "Y"

1 .Using 평균()을 열 이름 .Using 기능

z<-mean(df$x) 

2 (예를 들어 X)는 가변attach()

기능을 사용하는 것으로 당신이 detach() 제거 호출 할 수있는 일
attach(df) 
mean(x) 

detach() 

3 .Using with() 기능은, 당신이 데이터 프레임으로 구분 변수의 열을 사용할 수 있습니다 "X".

z<-with(df,mean(x)) 
0

dplyr 패키지에 사용 summarise는 :

library(dplyr) 
summarise(df, Average = mean(col_name, na.rm = T)) 

참고 : dplyrsummarisesummarize 모두 지원합니다.

3

열에 방치하려는 값이 포함되어있는 경우.도움이 될 것입니다.

## da is data frame & Ozone is column name 

##for single column 
mean(da$Ozone, na.rm = TRUE) 

##for all columns 
colMeans(x=da, na.rm = TRUE) 
관련 문제