나는 내 질문에 대한 답변이있을 것이라고 확신하지만 중복성을 위해 R에 절대적으로 새로운 기능과 인스턴트 메시지를 찾지 못하는 것 같습니다!트랜스 포즈 및 병합 데이터 세트 R
그래서 나는 거대한 데이터 세트를 가지고 있습니다. 17K obs는 35 가지 변수가 있습니다. 그것은 as.matrix를 가져 와서 강요 한 txt 파일이었습니다. 첫 번째 열에는 문자 값이 있고 나머지 열에는 숫자 값이 있습니다.
구조 -
>str(data_m)
chr [1:17933, 1:35] "RAB12" "TRIM52" "C1orf86" "PLAC9" "MORN3" "LOC643783" "LOC389541" "OAZ2" ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:35] "Name" "X118" "X12" "X21" ...
이제이 열이있는 또 다른 작은 긴 형태의 데이터 세트가 - ID와 성별.
> str(data_maleids)
'data.frame': 24 obs. of 2 variables:
$ id : Factor w/ 34 levels "X118","X12","X21",..: 8 23 9 19 10 7 5 4 2 30 ...
$ gender: Factor w/ 2 levels "female","male": 2 2 2 2 2 2 2 2 2 2 ...`
예 : -
row.names id gender
1 1 X37 male
2 2 X64 male
내가 제 2 데이터 세트에 존재 만 IDS (X37, X64 등)을하기위한 곳 중 1 번째 데이터 집합을 부분 집합을 수행 할 수 있기를 바랍니다.
큰 데이터 집합을 전치하려했지만 열 이름의 문제로 인해이 문제를 해결할 수 없습니다.
첫 번째 데이터 프레임을 읽을 때 행렬을 강요하지 마십시오. 두 번째 데이터 프레임 (ID와 성별)을 읽을 때'stringsAsFactors = FALSE'를 설정하십시오. 그런 다음'df1 [df1 $ Name % in % df2 $ id] '를 실행하십시오. – Thomas
$ 이름보다는 colnames (df1)이어야합니다? 왜냐하면 df2의 id는 실제로 df1의 열 이름이기 때문입니다. 그러나 논리는 효과가있었습니다. 감사 ! 그러나 다시 원래의 데이터 세트에서 첫 번째 열 $ 이름을 다시 병합의 또 다른 단계로 이어질 수 있지만 최선의 방법은 내가 그것을 할 수 없습니다. – user2695213