'daki veri çerçevesindeki değerler ile değiştirin. Veri çerçevesinin (df1) sütunundaki değerleri (df1 $ y) koşullu olarak başka bir veri çerçevesinden (df2 $ y) değerlerle değiştirmek istiyorum. Bu veri karelerinin bir ortak kimlik sütunu (x) vardır. df1, df2'den daha fazla satıra sahiptir ve df2'de olmayan değerlere sahiptir.Veri çerçevesindeki değerleri R
durumdur:
> df1 <- data.frame(x = c(1, 1, 2, 3, 4, 4, 4, 5, 6, 7),
y = c(100, 100, 50, 50, 75, 75, 75, 50, 100, 25))
> df1
x y
1 1 100
2 1 100
3 2 50
4 3 50
5 4 75
6 4 75
7 4 75
8 5 50
9 6 100
10 7 25
> df2 <- data.frame(x = c(2, 4, 6, 7), y = c(25, 100, 75, 100))
> df2
x y
1 2 25
2 4 100
3 6 75
4 7 100
istenen çıkışı: eşleşme
Ex şey
orada do ise df1 $ x == df2 $ x, df2 $ y ile df1 $ y değiştirirseniz :df1
x y
1 100
1 25
2 50
3 50
4 100
4 100
4 100
5 50
6 75
7 100
Burada yayınlanan ilk sorum bu ve başka bir soruda yanıtlandıysa lütfen bana bildirin.
Bu soru, Transfer values from one dataframe to another'dan farklıdır, çünkü koşullu olarak df1 $ y değerlerini nasıl değiştirdiğimi soruyorum, ancak değerleri df1.x! = Df2.x olarak saklayın. Soruya bağlı olarak, duruma uymayan değerler NA değerleridir. Yukarıdaki bağlantıya verilen bir cevaba göre sqldf() yöntemini kullanarak bir örnek için aşağıya bakın.
> sqldf('SELECT df1.x , df2.y
+ FROM df1
+ LEFT JOIN df2
+ ON df2.x = df1.x')
x y
1 1 NA
2 1 NA
3 2 25
4 3 NA
5 4 100
6 4 100
7 4 100
8 5 NA
9 6 75
10 7 100
şartlar nelerdir? x değeri eşleşmediğinde df1'deki ikinci satır y-değerini df2'nin ilk satır değeri ile neden değiştirirsiniz? – rawr
Bunu açıklığa kavuşturmalıydım. Durum: eğer df1 $ x == df2 $ x ise, df1 $ y yerine df2 $ y ile değiştirin, eğer hiçbir eşleşme yok ise. Bu koşulu eklemek için ana gönderiyi düzenleyeceğim. –