My question is rather simple. What I want is if A[i]!=NA
, then C[i]=A[i]
, if A[i]=NA
, then C[i]=B[i]
, however, I always get some error messages. Can somebody help me out?
A B C NA 82.6 . NA 127.2 . NA 93.6 . NA 105 . NA 104 . NA 90.6 . NA 95.8 . NA 103 . NA 85.4 . NA 81.5 . NA 142.8 . NA 102.3 . NA 104 . NA 103 . NA 94.6 . NA 113.8 . NA 113.5 . NA 74.5 . NA 123.8 . NA 94 . NA 89.8 . NA 74 . NA 104 . NA 100.5 . NA 102.9 . NA 132.5 . NA 91 . NA 92.5 . NA 97 . NA 90 . 54.6 51.7 . NA 61 . NA 80 . NA 77.5 . NA NA . NA 80.6 . NA 44.6 . NA 37.6 . NA 27 . NA NA . NA NA . NA NA .
To test if a value is NA, use is.na(). The function is.na(x) returns a logical vector of the same size as x with value TRUE if and only if the corresponding element in x is NA.
To check which value in NA in an R data frame, we can use apply function along with is.na function. This will return the data frame in logical form with TRUE and FALSE.
The is.na function returns TRUE if the value is NA, and returns FALSE if not as the name explains. Now you have a new column with TRUE/FALSE data. If you want to have opposite values, like FALSE for NA, and TRUE for non NA values, you can add an exclamation mark (“!”) at the beginning of the formula.
In R, the easiest way to find columns that contain missing values is by combining the power of the functions is.na() and colSums(). First, you check and count the number of NA's per column. Then, you use a function such as names() or colnames() to return the names of the columns with at least one missing value.
use is.na
:
DF <- within(DF, C <- ifelse(!is.na(A),A,B) )
with DF being your dataframe.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With