R интерполирует фрейм данных для построения графика - PullRequest
0 голосов
/ 02 апреля 2020

Я должен использовать R для универсального проекта и никогда не работал с ним. У меня есть данные, которые я хочу построить в виде линии. Это легко сделать в Excel. Я попытался добавить type = "l" для строки, но это ничего не изменило.

This is the current state

How the result should be (done in Excel)

Данные:

structure(list(energie = structure(1:70, .Label = c("6,086128", 
"6,094121", "6,102113", "6,110106", "6,118098", "6,126091", "6,134083", 
"6,142076", "6,150068", "6,158061", "6,166053", "6,174046", "6,182038", 
"6,190031", "6,198023", "6,206016", "6,214008", "6,222001", "6,229993", 
"6,237986", "6,245978", "6,253971", "6,261963", "6,269956", "6,277948", 
"6,285941", "6,293933", "6,301926", "6,309918", "6,317911", "6,325903", 
"6,333896", "6,341888", "6,349881", "6,357873", "6,365866", "6,373859", 
"6,381851", "6,389844", "6,397836", "6,405829", "6,413821", "6,421814", 
"6,429806", "6,437799", "6,445791", "6,453784", "6,461777", "6,469769", 
"6,477762", "6,485754", "6,493747", "6,501739", "6,509732", "6,517724", 
"6,525717", "6,533709", "6,541702", "6,549694", "6,557687", "6,56568", 
"6,573672", "6,581665", "6,589657", "6,59765", "6,605642", "6,613635", 
"6,621627", "6,62962", "6,637612"), class = "factor"), counts = c(3087L, 
3392L, 3344L, 3500L, 3820L, 3922L, 4228L, 4554L, 4993L, 5389L, 
5996L, 6722L, 8069L, 9664L, 11820L, 14850L, 19441L, 25678L, 33988L, 
45473L, 60054L, 78696L, 102619L, 134116L, 170851L, 214880L, 266225L, 
326652L, 392523L, 464922L, 540880L, 617257L, 695678L, 770345L, 
836950L, 896370L, 942687L, 974444L, 990290L, 988164L, 968812L, 
935182L, 887117L, 827125L, 757920L, 681929L, 604312L, 528583L, 
451095L, 381046L, 314493L, 258217L, 207459L, 163711L, 128339L, 
98124L, 73950L, 55331L, 41330L, 30491L, 22389L, 16331L, 12463L, 
9164L, 6977L, 5507L, 4716L, 3956L, 3480L, 3121L), background = structure(c(25L, 
23L, 22L, 21L, 18L, 15L, 13L, 12L, 11L, 10L, 65L, 59L, 55L, 49L, 
51L, 52L, 53L, 56L, 58L, 61L, 63L, 66L, 4L, 5L, 7L, 8L, 9L, 6L, 
67L, 64L, 60L, 57L, 54L, 50L, 48L, 44L, 36L, 31L, 27L, 16L, 17L, 
19L, 20L, 28L, 30L, 33L, 35L, 37L, 39L, 41L, 42L, 45L, 46L, 43L, 
40L, 38L, 34L, 32L, 29L, 24L, 14L, 62L, 47L, 26L, 2L, 1L, 1L, 
1L, 1L, 3L), .Label = c("0", "0,6083984", "0,8232422", "100,0361", 
"102,3467", "102,585", "103,958", "104,9824", "105,6318", "106,2451", 
"117,3525", "127,5557", "138,1836", "14,00977", "148,4844", "15,15625", 
"15,72266", "157,6016", "16,29004", "16,86719", "165,9395", "172,3467", 
"178,0049", "18,56543", "181,9922", "2,433594", "21,31152", "21,62988", 
"23,52344", "26,74121", "28,51465", "28,54102", "30,74219", "33,19629", 
"34,15918", "36,58594", "37,19043", "37,6377", "40,05762", "41,4873", 
"42,27734", "44,17188", "44,7373", "45,26465", "45,58203", "46,62305", 
"5,40918", "53,99609", "60,62305", "61,71484", "62,89063", "65,15918", 
"67,46777", "69,94922", "71,13184", "74,11523", "78,0752", "81,0752", 
"82,47852", "85,33984", "86,87891", "9,380859", "91,98145", "92,19043", 
"94,3252", "96,35449", "97,78418"), class = "factor")), class = "data.frame", row.names = c(NA, 
-70L))

Ответы [ 2 ]

2 голосов
/ 02 апреля 2020

Хорошо, вы дали нам свои данные. Нам нужно изменить энерг ie на десятичное число. Я уверен, что кто-то, кто знает о локалях, мог бы сделать это лучше, но вот быстрое решение

fe$energie = as.numeric(gsub(",",".", fe$energie))

Теперь я могу построить это

plot(counts ~ energie, data = fe, type = "l", xaxs = "i", yaxs = "i")

enter image description here

1 голос
/ 02 апреля 2020

Как сказал @JamesCurran в своем комментарии, проблема в том, что у вас есть факторные переменные вместо числовых c из-за того, что запятая читается read.csv вместо точек. У вас есть (как минимум) два способа решения этой проблемы


Решение 1

Изменение типа переменной в вашем фрейме данных

fe$energie <- as.numeric(gsub(",", ".", fe$energie))
plot(fe$energie, fe$counts, type = "l")

Решение 2

Считайте набор данных с запятой в качестве десятичного разделителя, используя

fe <- read.csv("path_to_your_df", dec = ",")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...