2015-01-27 5 views
0

결과를 나타내는 단 하나의 열만있는 행렬 또는 데이터 프레임의 두 열을 대체하기 위해 R 기본에 하나의 선형 명령이 있는지 궁금합니다. 대체 될 두 개의 열에 적용되는 수학 함수.두 열을 다른 두 함수를 나타내는 하나의 열로 바꿉니다

> vehicle = c("bike", "car", "train", "pork") 
> time = c(25,35,20,5) 
> distance = c(3.2,5.4,4,8.9) 
> df = data.frame(vehicle,time,distance) 
> df 
    vehicle time distance 
1 bike 25  3.2 
2  car 35  5.4 
3 train 20  4.0 
4 pork 5  8.9 

및 I는 시간과 거리 열 (df$distance/df$time) 최종 결과가되도록에 기초하여 계산 된 각각의 차량의 속도와 마지막 두 열을 교체하고자 : 예를 들어, I는이 데이터 프레임을 있다고 가정

> df 
    vehicle  speed 
1 bike 0.1280000 
2  car 0.1542857 
3 train 0.2000000 
4 pork 1.7800000 

원하는 단위로 입력하십시오. 나는 개종이나 다른 것을 신경 쓰지 않을 것이다. 나는 결과를 얻을 수 있지만, 이것에 대해 하나의 라이너가 있는지 궁금하다. 어떤 제안? 고맙습니다.

+2

그 돼지는 빠릅니다. – jbaums

+0

이 질문은 나에게 불분명하다. 이미 해결책이있는 것 같습니다. 두 개의 열을 제거하는 방법을 묻는 중입니까? –

+0

그리고 왜 R을 기본으로합니까? – LauriK

답변

2

당신은 또 다른 옵션은 dplyr

library(dplyr) 
transmute(df,vehicle=vehicle, speed=distance/time) 
에서 transmute를 사용하는 것 중 하나

data.frame(vehicle=df$vehicle, speed=df$distance/df$time) 

또는 등 transform/within를 사용하여 시도하고 "시간", "거리"열

transform(df, speed=distance/time)[-c(2:3)] 

을 제거 할 수 있습니다

관련 문제