2014-02-20 3 views
0

거기에 뭔가 여기
알아낼 수 없습니다 내 데이터 내가 무슨 짓을했는지, 그래서 I가 "Zeitpunkt"을 정렬 할 사용 요소는 NA 저를 제공

Proband Lauf Interleukin Ansatz Zeitpunkt 
    1  3 2  IFNy stim   ZP21 
    2  3 2   iL2 stim ZP4   
    3  3 2   iL2 stim   ZP14 
    4  5 3   iL2 stim   ZP21 
    5  4 3   iL2 stim ZP2   
    6  4 3   iL2 stim ZP4   
    7  4 3   iL2 stim  ZP28 
    8  9 5   iL2 stim ZP0   
    9  13 6  IFNy stim ZP4   
    10  13 6   iL2 stim  ZP7  
    11  16 7   iL2 stim   ZP21 
    12  16 7   iL2 stim  ZP28 

을 설정입니다 다음 :

pvalsig1 <- read.csv2(file="pvalsig.csv", fill=NA, na.strings="") 
pvalsig1 <- pvalsig[,1:5] 
pvalsig1$Zeitpunkt <- as.character(pvalsig1$Zeitpunkt) 
pvalsig1$Zeitpunkt <- factor(pvalsig1$Zeitpunkt, levels=c("ZP0", "ZP2", "ZP4", "ZP7", "ZP14", "ZP21", "ZP28", "ZP35", "ZPM9", "ZPM9+1")) 
나에게

Proband Lauf Interleukin Ansatz Zeitpunkt 
1  3 2  IFNy stim  ZP21 
2  3 2   iL2 stim  <NA> 
3  3 2   iL2 stim  ZP14 
4  5 3   iL2 stim  ZP21 
5  4 3   iL2 stim  <NA> 
6  4 3   iL2 stim  <NA> 
7  4 3   iL2 stim  <NA> 
8  9 5   iL2 stim  <NA> 
9  13 6  IFNy stim  <NA> 
10  13 6   iL2 stim  <NA> 
11  16 7   iL2 stim  ZP21 
12  16 7   iL2 stim  <NA> 

을 제공

나는 그것 가지고 뭔가 불규칙으로 확인해야 할 일입니다 전에 "Zeitpunkt"열에 정렬하십시오. 그러나 나는 그것이 무엇인지 그리고 어떻게 그것을 타는지 알아낼 수 없습니다. 들으

답변

1

봅니다 :

pvalsig1$Zeitpunkt <- factor(gsub("\\s*", "", pvalsig1$Zeitpunkt), levels=c("ZP0", "ZP2", "ZP4", "ZP7", "ZP14", "ZP21", "ZP28", "ZP35", "ZPM9", "ZPM9+1")) 

이것은 당신의 열에서 모든 공백을 제거합니다. 당신이 가지고있는 문제는 레벨이 ZP0"ZP0 " 같은 값으로 요소를 만들려고하기 때문에 여분의 공백 때문에 값이 일치하지 않습니다. 당신의 요인 수준이 공백 또는 다른 공백 문자를 포함 할 경우

참고이 중단되지만, 그런 경우가 있다면 당신은 같은 것으로 아주 쉽게 정규 표현식을 조정할 수 있습니다 어디를에 따라 또한

"(^\\s+|\\s*$)" 

, 이 데이터를 가져 오는 중 일부 입력 함수는 여분의 공백을 제거하는 기능을 가지고 있습니다 (예 : read.tablestrip.white 인수를가집니다).

또한 R trim에서 빠른 검색은이 popular SO answer을 끌어 올립니다.

+0

thx가 잘 작동했지만, 게시 한 코드의 마지막 비트를 이해할 수는 없습니다. – newbymedicalstats

+0

@newbymedicalstats 이는 앞뒤 공백 만 제거하는 다른 정규 표현식 패턴입니다. '| '는 "OR"을 의미하고, "^"는 시작을 의미하고, "&"는 끝을 의미합니다. '\\ s *'는 임의의 수의 인접한 공백을 의미합니다. 따라서 전체 표현은 "처음부터 여러 개의 공백을 일치 시키거나 끝에있는 공백 수와 일치시킵니다" – BrodieG