Saya membuat kerangka data di R dengan kolom yang menyimpan variabel dummy (dengan demikian 1 atau 0) dan menyimpannya ke file menggunakan

write.table(my_df,"my_df.txt",sep=" ", eol="\r\n", row.names=FALSE)

Kemudian, saya membaca file ke Python menggunakan

with open('./my_df.txt', 'r') as myfile:
    my_df = myfile.read().splitlines()

Akhirnya, saya ingin melakukan sesuatu dengan kolom yang memegang variabel dummy:

header = my_df[0].split(' ')
body = my_df[1:]
for i,j in enumerate(header):
    if j == '"dummy_variable_column"':
        column_index = i
dummies = [row.split(' ')[column_index].replace('"', '') for row in body]

Ini adalah pendekatan yang sering saya gunakan. Namun, dalam kasus khusus ini beberapa nilai dalam variabel dummies, di mana kolom pertanyaan disimpan, adalah 0.693147180559945. Saya tidak bisa menjelaskan ini pada diri saya sendiri, hanya ada 0 dan 1 yang seharusnya ada dalam variabel. Apakah ada yang tahu apa yang terjadi?

*edit kedua (karena komentar)

Ini adalah output dari print(my_df[:20])

"subject" "session" "trial" "age" "gender" "dummy_variable_column"
"s1" 1 2 19 "female" 0
"s1" 1 4 19 "female" 0
"s1" 1 11 19 "female" 0
"s1" 1 14 19 "female" 1
"s1" 1 15 19 "female" 0
"s1" 1 16 19 "female" 0
"s1" 1 17 19 "female" 1
"s1" 1 21 19 "female" 0
"s1" 1 24 19 "female" 0
"s1" 1 26 19 "female" 0
"s1" 1 39 19 "female" 0
"s1" 1 40 19 "female" 0
"s1" 1 41 19 "female" 1
"s1" 1 45 19 "female" 0
"s1" 1 48 19 "female" 0
"s1" 1 49 19 "female" 0
"s1" 1 50 19 "female" 0
"s1" 1 59 19 "female" 1
"s1" 1 61 19 "female" 0

Namun, print(my_df[37045]) menghasilkan

"s20" 1 26 19 "male" 0.693147180559945

Selanjutnya, saya ingin menunjukkan bahwa di R setelah perintah unique(my_df$dummy_variable_column) output berikut diberikan: 0 1

*edit ketiga karena komentar

Inilah cara saya bekerja dengan kolom saya:

header = my_df[0].split(' ')
body = my_df[1:]
for i,j in enumerate(header):
    if j == '"dummy_variable_column"':
        dummy_index = i
dummies = [item.split(' ')[dummy_index] for item in my_df]

Dan misalnya print(dummies[37044]) menghasilkan 0.693147180559945

-1
hyhno01 7 Juli 2020, 19:35

1 menjawab

Jawaban Terbaik

Ternyata ada satu kolom di R dataframe, yang terdiri dari nilai-nilai seperti 're + ba'. Karena spasi, pemisahan spasi dalam pemahaman daftar dummies = [item.split(' ')[dummy_index] for item in my_df] (edit ke-3) gagal mengambil nilai dari kolom yang benar.

0
hyhno01 8 Juli 2020, 07:43