(을 - 다른 관련성이없는 열입니다)R : (데이터 프레임의 일부로서) 목록의 벡터에 서로 다른 길이의 목록의 목록을 변이 나는이 같은 data.frame로 변환하는 CSV 파일이
C1 C2 C3 C4 C5 Start End C8
A 1 - - - [1,4,7] [3,6,10] -
A 2 - - - [12] [14] -
A 3 - - - [16,19] [17,21] -
A 4 - - - [22] [24] -
각 부분에서 시작과 끝의 범위를 반복적으로 계산하려고합니다.
Format the Start and End columns into lists
```{r}
vect <- function(fac){
str <- as.character(fac)
return(as.list(strsplit(substr(str,2,nchar(str)-1),",")))
#return(data.frame(lapply(str, `length<-`, max(lengths(str)))))
}
````
및
Read in experimental data
```{r}
data <- read.csv("elution_peptides_positions_arath.csv", sep=",",header=TRUE)
data <- mutate(data,Start=vect(Start),End=vect(End))
data$X <- NULL
```
문제가 있다는 것입니다 :
표기는 R에 정말 문자 그대로 파이썬하지 평가하는 데 유용 물론,하지만 난이 기능을 사용하여 시도했다 (벡터 대신에) 열로리스트를 제공하는 이유는 모르겠다!
> class(data$Start)
[1] "list"
나는이 오류를 범
data <- as.data.frame(lapply(data, unlist))
와 벡터에 목록을 변환 할 때 :
Error: wrong result size (35676), expected 35568 or 1
내가 할 수있는 기능을 적용하는 벡터로 그들이 필요를 첫 번째 요소로 정렬합니다 (다음과 같이 동작 할 것입니다).
id <- order(sapply(data$Start,function(i)i[1]))
data <- data[order(data$Start),]
하지만 목록을 통해 이렇게하면이 오류를 범
:
Error in order(data_protein$Start) :
unimplemented type 'list' in 'orderVector1'
그래서 내가 벡터에 해당 열을 변환해야한다고 생각.
첫 번째 오류의 원인은 무엇입니까? 어떻게 해결할 수 있을까요?