簡體   English   中英

如何編寫 R 代碼來查找數據集中的行數、列名稱以及該數據集中土地覆蓋類的唯一值

[英]How do I Write R code to find the number of rows in a data set, & the names of the columns and the unique values of landcover classes in this dataset

我有一個名為“landcover.csv”的數據集,其中包含 2008 年和 2018 年巴西和加拿大不同土地覆蓋類別(變量 Class)覆蓋的土地面積(變量 Area)。

我設置工作目錄,然后將數據集導入 R library(tidyverse) land = read_csv('landcover.csv')

問題 1:編寫 R 代碼,求出這個數據集中的行數和列名。
問題 2:編寫 R 代碼以查找此數據集中土地覆蓋類的唯一值。

我已經嘗試了下面的代碼,但不確定它是否給出了意外錯誤。

nrow(landcover) 錯誤:“>”中出現意外的“>”

colnames(landcover) 錯誤:“>”中出現意外的“>”

unique(landcover) 錯誤:“>”中出現意外的“>” unique(landcover) 錯誤:“>”中出現意外的“>”

問題 3:只考慮 2018 年。使用 R 求出每個國家的土地總面積。 還寫一個 dplyr pipe 來構建一個匯總表,給出每個土地覆蓋的總面積 class,按面積遞減順序給出。 在您的答案中包括 R 代碼和 output。

問題 4:(d) 我們希望調查 2008 年至 2018 年間每個國家土地覆蓋的變化。首先,解釋下面給出的 R 代碼產生了什么。 其次,進一步添加 R 代碼以盡可能准確地再現下面的圖形 plot。 第三,給出一個你可以從圖形 plot 中得出的結論。在你的答案中包括解釋和 R 代碼。

土地 %>% pivot_wider(names_from=Year, values_from=Area) %>% rename(year2018= 2018 , year2008= 2008 )

歡迎來到 stackoverflow Aanu!

由於我無權訪問您的數據,因此我將創建一個小型數據集來嘗試回答您的問題:

library(tidyverse)
df <- tibble(
  "id" = c(1:5),
  "name" = c("Patrick","Josh","Ana","Jasmine","Jonathan"),
  "sex" = c("Male","Male","Female","Female","Male"),
  "age" = c(18,22,25,28,12)
)


# A tibble: 5 × 4
     id name     sex      age
  <int> <chr>    <chr>  <dbl>
1     1 Patrick  Male      18
2     2 Josh     Male      22
3     3 Ana      Female    25
4     4 Jasmine  Female    28
5     5 Jonathan Male      12

關於你的第一個問題,我建議使用str() function:

str(df)

tibble [5 × 4] (S3: tbl_df/tbl/data.frame)
 $ id  : int [1:5] 1 2 3 4 5
 $ name: chr [1:5] "Patrick" "Josh" "Ana" "Jasmine" ...
 $ sex : chr [1:5] "Male" "Male" "Female" "Female" ...
 $ age : num [1:5] 18 22 25 28 12

您可以從印刷品中看到您有一個tibbledataframe替代品),有 5 行和 4 列。 控制台打印中的每一行都會為您提供列的名稱、列的類型(int、chr、num 等)並列出前幾個觀察結果。

關於你的第二個問題,我會假設我的“性別”列類似於你的“類”列:

df %>%
  count(sex, sort = TRUE, name = "count")


# A tibble: 2 × 2
  sex    count
  <chr>  <int>
1 Male       3
2 Female     2

使用count()您可以看到“性別”列中的唯一值以及它們出現的次數。 假設您只想要一個唯一值列表,您還可以:

df %>%
  distinct(sex)

# A tibble: 2 × 1
  sex   
  <chr> 
1 Male  
2 Female

問題rest在沒有訪問數據的情況下很難回答。

一般來說,最好提供某種樣本數據來幫助人們回答您的問題。

關於您在問題 1 中的代碼中遇到的錯誤,在我看來,當您讀取文件時,出現了某種格式錯誤。 如果您發布了一些代碼並發布了print()的 output,這將會有所幫助。 按照我的例子:

print(df)

# A tibble: 5 × 4
     id name     sex      age
  <int> <chr>    <chr>  <dbl>
1     1 Patrick  Male      18
2     2 Josh     Male      22
3     3 Ana      Female    25
4     4 Jasmine  Female    28
5     5 Jonathan Male      12

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM