2010-02-13 15 views
5

R'da, uzun bir vektörün ilk değerlerinin bir dosyadan elde edilen değerlerle, dosyanın daha az sayıda değer içerdiği şekilde nasıl yazabilirim?R'de, uzun bir vektörün ilk değerlerini daha kısa olan değerlerine nasıl ayarlayabilirim?

Örnek:

# fill with n=100 values 
vec1 <- runif(100) 

# read m values, where m <= n 
vec2 <- scan("myfile", sep="\n") 

# now want to set the first m values of vec1 
# to the values in vec2 

Ben vec2 yürümek ve vec1 içine değerleri kopyalamak, ama daha verimli bir şekilde olmalıdır düşünürsün?

cevap

6
R> set.seed(1) 
R> vec1 <- runif(100) 
R> vec2 <- 1:20 

R> vec1[1:length(vec2)] <- vec2 
R> vec1 
    [1] 1.00000 2.00000 3.00000 4.00000 5.00000 6.00000 7.00000 8.00000 
    [9] 9.00000 10.00000 11.00000 12.00000 13.00000 14.00000 15.00000 16.00000 
[17] 17.00000 18.00000 19.00000 20.00000 0.93471 0.21214 0.65167 0.12556 
[25] 0.26722 0.38611 0.01339 0.38239 0.86969 0.34035 0.48208 0.59957 
[33] 0.49354 0.18622 0.82737 0.66847 0.79424 0.10794 0.72371 0.41127 
[41] 0.82095 0.64706 0.78293 0.55304 0.52972 0.78936 0.02333 0.47723 
[49] 0.73231 0.69273 0.47762 0.86121 0.43810 0.24480 0.07068 0.09947 
[57] 0.31627 0.51863 0.66201 0.40683 0.91288 0.29360 0.45907 0.33239 
[65] 0.65087 0.25802 0.47855 0.76631 0.08425 0.87532 0.33907 0.83944 
[73] 0.34668 0.33377 0.47635 0.89220 0.86434 0.38999 0.77732 0.96062 
[81] 0.43466 0.71251 0.39999 0.32535 0.75709 0.20269 0.71112 0.12169 
[89] 0.24549 0.14330 0.23963 0.05893 0.64229 0.87627 0.77891 0.79731 
[97] 0.45527 0.41008 0.81087 0.60493 
İlgili konular