我有一個名為“windows”的遺傳資料資料框
glimpse(windows)
Rows: 3,000
Columns: 5
$ chrpos <chr> "1:104159999-104168402", "1:104159999-104168402", "1:104159999-104168402"
$ target <chr> "AMY2A", "CFD13", "PUTA"
$ name <chr> "rs5753", "rs70530", "rs21111"
$ chr <chr> "1", "1", "1"
$ pos <int> 104560629, 104562750, 104557705
我想讓它們按“目標”列中的行分隔資料框
AMY2A<- filter(windows, target == 'AMY2A')
write.table("am2ya.txt", header=T)
效果很好,但是對于“目標”的每個元素行來說都是很費力的
但是我如何遍歷所有這些,然后將它們保存為文本檔案,一口氣?
list <- windows$target
for(i in list)
df.list[[i]]<-filter(windows, target == list[[i]])
這給出了錯誤:
Error in `filter()`:
! Problem while computing `..1 = target == list[[i]]`.
Caused by error in `list[[i]]`:
! subscript out of bounds
當我在谷歌上保存多個 txt 檔案時,它只是出現了如何讀取多個文本檔案。
任何幫助都會很棒,謝謝!
uj5u.com熱心網友回復:
或者,使用 tidyverse,類似
windows %>%
group_by(target) %>%
group_walk(
function(.x, .y) {
write.table(.x, paste0(tolower(.y$target[1]), ".txt"))
},
.keep=TRUE
)
[未經測驗的代碼,因為您的問題不可重現。]
將列.keep=TRUE保留target在文本檔案中。如果這是不必要的,請隨時洗掉它。詳細資訊在在線檔案中。
uj5u.com熱心網友回復:
可能是這樣的:
lst <- windows$target
for(i in seq_along(lst)){
dat <- filter(windows, target == lst[[i]])
write.table(dat, paste0(tolower(lst[[i]]), ".txt"))
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/525494.html
標籤:r循环for循环整齐的
上一篇:為什么asyncawait和Promise.all的運行時間相同?
下一篇:ggplot2中的等分布條形圖
