두 개의 다른 튜브를 사용하여 분리 된 샘플에서 수천 개의 유전자에 대한 확장 된 발현 값이 포함 된 데이터 세트가 있습니다. 이 두 함수를 사용 하여이 데이터 세트 https://www.sendspace.com/file/4ebpk3 에 대한 계산을 수행 하고 결과를 플로팅하고 싶었습니다 .
#Create a function to calculate molecular distance
mol.distance <- function(df, grp){
x = df[grp]
x = as.numeric(x)
y = as.numeric(df)
mean.x = mean(x)
difference = y - mean.x
}
#Create a function to calculate median difference
med.diff <- function(df){
x = as.numeric(df)
result = median(x)
}
아이디어는 먼저 첫 번째 공식을 사용하여 거리를 계산한다는 것입니다. 그런 다음 두 번째 공식을 사용하여 각 샘플에서 거리의 중앙값을 계산했습니다. 이 중앙값은 geom_bar에 표시되었습니다.
`#Calculating molecular distance
distance <- apply(clean.merged, 1, mol.distance, grp = (1:40))
rownames(distance) <- colnames(clean.merged)
med.distance <- apply(distance, 1, med.diff)
med.distance <- round(med.distance, digits = 4)
distance1 <- cbind(med.distance, samp.name, iso.tube)
colnames(distance1) <- c('Molecular_Distance', 'Sample_Name', 'Isolation_Tube')
#Plot the result
dist.plot <- ggplot(as.data.frame(distance1), aes(Sample_Name, Molecular_Distance))
dist.plot + geom_bar(stat = 'identity', aes(fill = Isolation_Tube)) +
ggtitle('Molecular Distance') + coord_flip()`
예상대로 결과는 양수 값과 음수 값이 혼합되어 0 주위에 떠 있습니다. 그러나 결과를 막대 그림으로 표시하면 다음과 같이 표시됩니다. 막대 그림이 어떻게 생겼는지
한편, 나는 다음과 같은 것을 기대했습니다.
저는 프로그래밍에 익숙하지 않아서 어디서 엉망인지 모르겠습니다. 당신의 생각을 알려주세요. 감사합니다.
제공된 데이터를 이용하여 회피 samp.name
하고 iso.tube
여기 후, 가능한 솔루션에없는 어떤 :
#Data
clean.merged <- read.csv('clean.merged.csv')
#Functions
#Create a function to calculate molecular distance
mol.distance <- function(df, grp){
x = df[grp]
x = as.numeric(x)
y = as.numeric(df)
mean.x = mean(x)
difference = y - mean.x
}
#Create a function to calculate median difference
med.diff <- function(df){
x = as.numeric(df)
result = median(x)
}
distance <- apply(clean.merged, 1, mol.distance, grp = (1:40))
rownames(distance) <- colnames(clean.merged)
med.distance <- apply(distance, 1, med.diff)
med.distance <- round(med.distance, digits = 4)
distance1 <- data.frame(med.distance)
colnames(distance1) <- c('Molecular_Distance')
distance1$Sample_Name <- rownames(distance1)
ggplot(distance1, aes(Sample_Name, Molecular_Distance))+
geom_bar(stat = 'identity', fill='orange',color='black') +
ggtitle('Molecular Distance') + coord_flip()
문제는 데이터 프레임에 데이터를 보관하지 않기 때문이라고 생각합니다. 나는 그것을 코드에 추가했습니다. 존재하지 않는 변수의 경우 동일한 데이터 프레임에 추가 할 수 있습니다 distance1
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다