![](/img/trans.png)
[英]How do I save a single column of data produced from a while loop in R to a dataframe?
[英]How can I get a single value from a read.csv-produced dataframe instead of a list?
我在數據路徑上使用 read.csv。 它返回一個數據幀。 我希望能夠在此數據框中獲得單個值,但我獲得了一個顯示級別的值列表。
我嘗試了幾種方法來訪問我想要的值。 在下一部分中,我將向您展示我嘗試過的方法以及得到的結果。
這是我的簡單數據框:
"OGM","Nutrient","data3"
"tomato","iron",0.03
"domestic cat","iron",0.02
"zebrafish","zing",0.02
"giraffe","nitrate", 0.09
"common cougar","manganese",0.05
"fawn","nitrogen",0.04
"daim","bromure",0.08
"wild cat","iron",0.05
"domestic cat","calcium",0.02
"muren","calcium",0.07
"jaguar","iron",0.02
"green turtle","sodium",0.01
"dave grohl","metal",0.09
"zebra","nitrates",0.12
"tortoise","sodium",0.16
"dinosaur","calcium",0.08
"apex mellifera","sodium",0.15
這是我加載數據的方式:
#use read.csv on the datapath contained in file
fileData <- read.csv(file[4][[1]])
print(fileData[1][1])
我想要的是訪問單個值:例如“番茄”或“硝酸鹽”。 我想要的結果正是這樣:
>[1] tomato
這是我的嘗試和結果:
print(fileData[1][1])
返回
> OGM
>1 tomato
>2 domestic cat
>3 zebrafish
>4 giraffe...
print(fileData$OGM[1])
返回
> [1] tomato
Levels: apex mellifera common cougar daim...
print(fileData[1][[1]])
返回
> [1] tomato domestic cat zebrafish giraffe common cougar [...]
[15] tortoise dinosaur apex mellifera
Levels: apex mellifera common cougar daim...
print(fileData$OGM[[1]])
返回
Levels: apex mellifera common cougar daim...
為這個愚蠢的問題道歉,但我有點迷茫。 感謝所有幫助。 如果你想讓我編輯我的帖子更清楚,告訴我。 謝謝你。
一些建議
嘗試readr::read_csv
而不是read.csv
來讀入您的數據。 這將解決stringsAsFactors 問題。 或者使用 Stewart Macdonald 建議的方法。
輸入數據后,您可以按如下方式操作它
# Make a sample dataframe
library(tidyverse)
df <- tribble(~OGM, ~Nutrient, ~data3,
"tomato","iron",0.03,
"domestic cat","iron",0.02,
"zebrafish","zing",0.02,
"giraffe","nitrate", 0.09,
"common cougar","manganese",0.05,
"fawn","nitrogen",0.04,
"daim","bromure",0.08,
"wild cat","iron",0.05,
"domestic cat","calcium",0.02,
"muren","calcium",0.07,
"jaguar","iron",0.02,
"green turtle","sodium",0.01,
"dave grohl","metal",0.09,
"zebra","nitrates",0.12,
"tortoise","sodium",0.16,
"dinosaur","calcium",0.08,
"apex mellifera","sodium",0.15)
df %>%
select(OGM) %>% # select the OGM column
filter(OGM == 'tomato') %>%
pull # convert to a vector
[1] "tomato"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.