我有一個數據幀表示圖表的邊界列表,如下所示: | user1 | user2 | delta_t | |-------|-------|---------| | Bob | Alice | 10 | | Jake | June | -1 |
我想根據交互的時間創建一個有向圖,並且使用igraph,邊緣總是從user1到user2。
因此,我想通過我的數據框,並根據delta_t重新排列節點的順序。交換同一行中的列之間的元素
這就是我現在所擁有的:
network_edge_list <- transform(network_edge_list, user1 = ifelse(delta_t > 0, user2, user1), user2 = ifelse(delta_t > 0 , user1, user2))
它工作正常,但每次交換的用戶在一排的時候,它改變了用戶2名成數。我猜這是因爲它沒有辦法跟蹤第一次交換後user2的字符串值,所以它會進行任意替換。 雖然在數據框中一直髮生,並且一旦用戶轉換爲數字,該數字在整個數據框中正確使用,這非常令人討厭,並使我的下一步變得更加困難。
我也試過:
myfunction <- function(df){
if (df[3] > 0){
temp <- df[1]
df[1] <- df[2]
df[2] <- temp
}
}
df <- apply(df, 1, function(x) myfunction) `
但我沒有得到我所期待的結果,實際上是找了很多更復雜的比我希望的那樣。
任何人有任何想法? 謝謝
是什麼類型的數據?也許他們只是因素? – Tim
對!猜測在故障排除時打開你的眼睛會幫助Oo –