데이터 프레임이이고 8 개의 정수 열 (및 약 1000 행의 데이터)이 있습니다. 8 개의 정수 매개 변수를 사용하고 단일 값을 반환하는 UDF '테스트'를 만들었습니다. 임의의 정수 값을 전달하여 UDF를 테스트했으며 작동하는 것을 알 수 있도록 단일 값을 리턴합니다. 이제 8 개의 정수 열을 한 행씩 전달하고 데이터 프레임의 각 행에 대해 새 열로 값을 반환하겠습니다. x$NewColumn = test(x$Col1, x$Col2 .... x$Col8)
을 시도했지만이 함수는 데이터가 올바르게 전달되지 않았 음을 나타내는 오류를 반환합니다. 누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?다중 매개 변수 사용자 정의 함수가있는 데이터 프레임에 열을 추가 R
답변
당신의 data.frame의 행에 걸쳐 실행하는 apply
기능을 사용해보십시오 :
## Create some data
df <- as.data.frame(matrix(runif(40),10))
## Now we can use 'apply'. The '1' in the second argument means we apply across rows, if it were two we would apply across columns.
## The function we are applying to each row is to sum all the values in that row
df$Total <- apply(df , 1 , sum)
## We can also pass 'anonymous' functions. In this instance our function takes a single vector, 'x'
## 'x' is all the values of that row, and we can use them like so to do the same thing as 'sum' in the previous example
df$Function <- apply(df , 1 , function(x) x[1] + x[2] + x[3] + x[4])
## And if we see what is in df, 'df$Total' and 'df$Function' should have the same values
df
# V1 V2 V3 V4 Total Function
#1 0.6615353 0.5900620 0.02655674 0.1036002 1.381754 1.381754
#2 0.8471900 0.8927228 0.77014101 0.6379024 3.147956 3.147956
#3 0.8783624 0.6769206 0.09598907 0.6681616 2.319434 2.319434
#4 0.7845933 0.8992605 0.13271067 0.3691835 2.185748 2.185748
#5 0.9753706 0.1374564 0.12631014 0.3693808 1.608518 1.608518
#6 0.4229039 0.7590963 0.79936058 0.2674258 2.248787 2.248787
#7 0.2635403 0.6454591 0.98748926 0.5888263 2.485315 2.485315
#8 0.7008617 0.7505975 0.39355439 0.5943362 2.439350 2.439350
#9 0.1169755 0.1961099 0.88216054 0.3383819 1.533628 1.533628
#10 0.3298974 0.0110522 0.88460835 0.3700531 1.595611 1.595611
을 참조하십시오. 또한'colSums (df)'를 사용할 수 있습니다. –
@Jilber이 예에서는 그렇습니다. 그러나 OP에는 모든 값을 가져 와서 하나의 값을내는 정의되지 않은 '함수'가 있습니다. 그 함수가 단순한 합계인지는 명확하지 않습니다. 따라서 두 번째 예제입니다. –
나는 네가하는 말을 충분히 이해할 수 있을지 확신하지 못한다. 나는 apply 함수의 기초를 이해하지만, 나는 내 상황에서 사용할 문법에 대해 확신하지 못한다. 예제에서 볼 수 있듯이 4 개의 열을 더한 단일 매개 변수를 취하는 함수 (x)를 만들었습니다. 이를 미리 정의 된 UDF가 있고 여러 매개 변수를 전달해야하는 제 사례로 어떻게 변환합니까? – zgall1
당신은 스택 오버플로 mapply
mapply(test, x$Col1, x$Col2 .... x$Col8)
이 경우에는'apply'가 더 편리한 표기법이라고 생각하지 않습니까? 데이터는 이미'data.frame'에 있습니다. 'mapply'는 * 많은 * 메소드 중 하나이지만, OP *는 가장 적합한 것을 사용해야합니다. 나는 그들이 덜 편리해 보이기 때문에 그들이 * mapply을 사용해야한다고하지만 그것들은 할 수있다. –
'apply '는'data.frame'을 먼저'matrix'로 변환합니다. 이것은 원하지 않을 수도 있습니다. –
OP는 이미 정수 값의 열을 가지고 있다고 말했습니다. –
df = data.frame(matrix(runif(80),ncol=8))
# creation of a matrix for the example
my.function = function (x) { return (mean(x)) } # write your function
# and then use the apply function
new.column = apply(df,1, my.function)
df$new.column = new.column
- 1. 사용자 정의 함수에서 데이터 프레임에 여러 열을 추가하는 방법 R
- 2. R 데이터 프레임에 문자열 추가
- 3. 데이터 프레임에 열을 목록으로 삽입 R
- 4. 총 행 합계 열을 데이터 프레임에 R
- 5. 데이터 프레임에 적용되는 함수로 변수 계산 R
- 6. 매개 변수화 ddply 데이터 프레임에 대한 R
- 7. wp_nav_menu에 사용자 정의 쿼리 매개 변수 추가
- 8. 설치 패키지에 사용자 정의 매개 변수 추가
- 9. 데이터 프레임에 R 데이터 세트로드
- 10. 데이터 프레임에 좌표계 지정 R
- 11. SSRS 사용자 정의 가시성 매개 변수 - 다중 선택 오류
- 12. R : 누락 된 값이있는 열을 데이터 프레임에 추가합니다.
- 13. 변수가있는 데이터 프레임에 열 추가
- 14. R 반짝이 데이터 프레임에 (복수의) 값을 추가하십시오.
- 15. R 다른 데이터 프레임에 데이터 프레임 적용
- 16. R 프로그래밍 : 실행중인 중첩 루프 내에서 데이터 프레임에 데이터 추가
- 17. R : 데이터 프레임에 여러 변수가있는 "성장"열을 계산하는 방법
- 18. 여러 열의 값을 기반으로 R 데이터 프레임에 새 열을 만듭니다.
- 19. 데이터 프레임에 파일을 읽고 일부 열을 인쇄하는 방법 R
- 20. R : 목록을 데이터 프레임에 결합
- 21. R 및 데이터 프레임에 추가하기
- 22. 데이터 프레임에 추가 날짜 추가
- 23. wp7 : 함수가있는 사용자 정의 컨트롤
- 24. for 루프를 사용하여 데이터 프레임에 열을 추가하십시오.
- 25. 사용자 정의 유효성 검사 다중 매개 변수 속성은
- 26. Linux의 다중 인터페이스에 대한 사용자 정의 TCP 매개 변수
- 27. 행을 마이닝하고 R 빈 데이터 프레임에 추가하십시오.
- 28. 기본 포스트 명령에 매개 변수 추가 R
- 29. R에있는 루프의 데이터 프레임에 변수 이름이있는 열을 추가하는 방법?
- 30. 함수의 다중 매개 변수 정의 Python
에 오신 것을 환영를 사용할 수 있습니다! 당신을 도울 좋은 사람들을위한 재현 가능한 샘플을 여기에 추가하십시오. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –