метрическая манипуляция в R - PullRequest
0 голосов
/ 11 октября 2019

вот мой код R

посмотрите и дайте мне sol

data1<-as.matrix(c(1,2,3,4,5,6,7,8,9,0,11,12,13,14,15,16,17,18,19))
temp<- c(data1)

print(temp)

print(paste0(temp[0:-3]))

## "4"  "5"  "6"  "7"  "8"  "9"  "0"  "11" "12" "13" "14" "15" "16" "17" "18" "19"

как я могу получить это положить

"1" "2" "3" "4" "5" "6" "7" "8" "9" "0" "11" "12" "13" "14" "15" "16"

а также я хочу один элемент до 1 и после 16

здесь, если я использую tail и head

 temp<- c(data1)


 ret<-c(cumsum(data1))

 a<-tail(ret,n = -3)
 b<- head(ret,n=-3)
 a-b
 #9  13  18  24  31  39  38  48  59  81  84  98 113 129 146 164  
 THIS IS WHAT I GET (wrong) 

 THIS IS WHAT I AM EXPECTING (python can give this) 

 # 9 12 15 18 21 24 17 20 23 36 39 42 45 48 51 54

, дайте мне предложение

1 Ответ

1 голос
/ 11 октября 2019
head(temp,-3)
 [1]  1  2  3  4  5  6  7  8  9  0 11 12 13 14 15 16

Итак, ret - это совокупная сумма данных1, она имеет значения

[1] 1 3 6 10 15 21 28 36 45 45 56 68 81 95 110 126 143 161 180

, а переменная a равна ret без первых трех элементов

[1] 10 15 21 28 36 45 45 56 68 81 95 110 126 143 161 180

b равно temp без последних 3 элементов

[1] 1 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16

a-b означает, что каждый элемент b вычитается из элемента ста же позиция в

Итак, a-b будет равняться

[1] 9 13 18 24 31 39 38 48 59 81 84 98 113 129 146 164

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...