Я новичок в R и Python, так что простите, если это элементарный вопрос. У меня есть большой набор данных генов (столбцов) по пациентам (строкам), причем каждое значение является значением экспрессии РНК (большинство значений находится в диапазоне от 0 до 1). Я хочу умножить весь набор данных на 1000, чтобы все ненулевые значения были> 1.
В настоящее время:
Pt GeneA GeneB GeneC
1 0.001 2 0
2 0 0.5 0.002
Хотелось бы:
Pt GeneA GeneB GeneC
1 1 2000 0
2 0 500 2
Я пытался сделать это как на R, так и на Python и столкнулся с проблемами с обоими. Я также попытался преобразовать мои данные между фреймом данных и матрицей, и это не будет работать ни с одним из них. Я много раз искал на этом сайте и нашел информацию о том, как умножить всю df / матрицу на вектор или отдельные столбцы на скаляр, но не на все. Может ли кто-нибудь любезно указать мне правильное направление? Я чувствую, что это не может быть так сложно:)
Использование R:
df <- read.csv("/Users/m/Desktop/data.csv")
df * 100
In Ops.factor(left, right) : ‘*’ not meaningful for factors
mtx <- as.matrix(df)
mtx * 100
Error in mtx * 100 : non-numeric argument to binary operator
Использование Python 3.7.6:
df = df * 1000
^ Это работает без сообщения об ошибке, но значения в ячейках совпадают, поэтомуна самом деле ничего не умножить ...
df = df.div(.001)
TypeError: unsupported operand type(s) for /: 'str' and 'float'
Какие-нибудь творческие идеи или ресурсы, чтобы указать мне правильное направление? Спасибо!